SQL Server LIKE,WILDCARDS,AND,OR运算符,括号

时间:2017-03-10 20:54:42

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

需要帮助查询以prefix1或prefix2开头的名称列表。这些名称在其描述中应包含值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','和'和'或'带有通配符的运算符来完成,还是有另一种更好的方法吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

这是你在找什么?

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

参考: