首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >常规表达式MS SQL。如何在select中使用。

常规表达式MS SQL。如何在select中使用。
EN

Stack Overflow用户
提问于 2018-06-07 04:16:40
回答 4查看 55关注 0票数 2

我需要写select,它给了我字段SerialNumber中只有像这样的字符串和一些数字的记录。例如MT34234234或MT455。我不想要其他记录,例如,值为MTA424或MT23423423BBA的记录。我写了这样一个规则表达式:

代码语言:javascript
复制
select * from 
MyTable
where  SerialNumber like 'MT%[0-9]'

但它给我的记录是有价值的MTA424。有人能帮我解决我的问题吗?

EN

回答 4

Stack Overflow用户

发布于 2018-06-07 04:22:38

您可以在字符串的开头检查MT,然后在字符串的前2位之后检查非数字字符。

代码语言:javascript
复制
declare @table table (SerialNumber varchar(64))
insert into @table
values
('MT34234234'),
('MT455'),
('MTA424'),
('MT23423423BBA')

select * from @table
where SerialNumber like 'MT%'
and right(SerialNumber,len(SerialNumber) - 2) not like '%[^0-9]%'
票数 3
EN

Stack Overflow用户

发布于 2018-06-07 04:28:51

就像@Ryan说的那样,SQL-Server中没有真正的正则表达式。但是,您可以通过添加第二个条件来获得所需的选择,例如

代码语言:javascript
复制
select * from MyTable
where  SerialNumber like 'MT%'
and SerialNumber not like 'MT%[^0-9]%'

(我也修改了第一个条件。)

票数 2
EN

Stack Overflow用户

发布于 2018-06-07 04:38:19

代码语言:javascript
复制
SELECT * FROM MyTable
WHERE SerialNumber LIKE 'MT%'
    AND SerialNumber NOT LIKE 'MT%[a-zA-Z]%'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50728848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档