SQL Server 以字符串列表开头

And*_*rew 3 pymssql

我以前使用过 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 ...

Jer*_*ell 5

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)