【问题标题】:SQL Server starts with list of stringsSQL Server 以字符串列表开头
【发布时间】:2017-03-28 00:09:12
【问题描述】:

我以前使用 MySQL 并且有一个使用 REGEXP 的查询。我试图找到以某些字符开头的site_ids,并使用以下内容:

WHERE site_id REGEXP '^(AB|BC|AO|BO|CA|PAF|Z)'

基本上试图找到site_id LIKE 'AB%' OR 'BC%'... 所在的行,但因为我有很多字符串要匹配,所以我想以一种不那么冗长的方式来做。

不幸的是,SQL Server 似乎不喜欢这种语法,我得到一个错误:

在预期条件的上下文中指定的非布尔类型表达式,靠近“REGEXP”。DB-Lib 错误消息 4145,严重性 15:一般 SQL Server 错误:检查来自 SQL Server 的消息

有没有一种不使用大量LIKE 'XX%' OR ... 的简洁方法?

【问题讨论】:

    标签: pymssql


    【解决方案1】:

    您可以使用leftorin 的组合来缩短您的查询。

    WHERE left(site_id,2) in ( 'AB', 'BC', 'AO', 'BO', 'CA') or left(site_id, 3) = 'PAF' or left(site_id, 1) = 'Z'
    

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多