我以前使用过 MySQL,并且有一个使用REGEXP
. 我试图找到site_id
以某些字符开头的 s,并使用以下内容:
WHERE site_id REGEXP '^(AB|BC|AO|BO|CA|PAF|Z)'
Run Code Online (Sandbox Code Playgroud)
基本上试图找到行 where site_id LIKE 'AB%' OR 'BC%'...
,但因为我有很多字符串要匹配,所以我想以不太冗长的方式进行操作。
不幸的是 SQL Server 似乎不喜欢这种语法,我收到一个错误:
在需要条件的上下文中指定的非布尔类型表达式,靠近“REGEXP”。DB-Lib 错误消息 4145,严重性 15:常规 SQL Server 错误:检查来自 SQL Server 的消息
有没有一种巧妙的方法可以在不使用大量的情况下做到这一点LIKE 'XX%' OR ...
?
left
您可以使用、or
、 和的组合in
来缩短查询。
WHERE left(site_id,2) in ( 'AB', 'BC', 'AO', 'BO', 'CA') or left(site_id, 3) = 'PAF' or left(site_id, 1) = 'Z'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2891 次 |
最近记录: |