【问题标题】:SQL Server LIKE, WILDCARDS, AND, OR operator, bracesSQL Server LIKE、WILDCARDS、AND、OR 运算符、大括号
【发布时间】:2017-08-01 08:09:44
【问题描述】:

在查询以前缀 1 或前缀 2 开头的名称列表时需要帮助。这些名称应在其描述(下一列)中包含值 ABC 或 DEF。类似于以下选择查询:

SELECT Name 
FROM Table 
WHERE Name LIKE 'X_%' 
   OR Name LIKE 'Y_%' 
  AND NextCol LIKE 'ABC%' 
   OR NextCol LIKE 'DEF%'

结果集应如下所示:

 |-------|----------------|
 |Name   | NextCol        |
 |------ |----------------|
 |X_BLAH | ABCandsomething|
 |Y_BLAH | DEFandsomething|
 |X_BLAH | DEFandsomething|
 |Y_BLAH | ABCandsomething|

这是否可以使用多个带有通配符的“like”、“and”和“or”运算符来完成,或者还有其他更好的方法吗?

【问题讨论】:

  • 那么到底是什么问题?
  • _ 匹配任何单个字符的问题?请改用like 'Y[_]%'

标签: sql-server wildcard sql-like or-operator and-operator


【解决方案1】:

你只是少了括号,你在正确的轨道上。

SELECT Name 
FROM Table 
WHERE (Name LIKE 'X_%' OR Name LIKE 'Y_%') AND (NextCol LIKE 'ABC%' OR NextCol LIKE 'DEF%')

【讨论】:

    【解决方案2】:

    这是你要找的吗?

    select Name
    from Table
    where (Name like 'X_%' or Name like 'Y_%') 
      and (NextCol like 'ABC%' or NextCol like 'DEF%')
    

    参考:

    【讨论】:

    • 谢谢SqlZim,括号解决了问题!
    猜你喜欢
    • 2015-02-17
    • 2021-01-09
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多