1

在查询以前缀 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”运算符来完成,还是有另一种更好的方法来做到这一点?

4

2 回答 2

3

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

SELECT Name 
FROM Table 
WHERE (Name LIKE 'X_%' OR Name LIKE 'Y_%') AND (NextCol LIKE 'ABC%' OR NextCol LIKE 'DEF%')
于 2017-03-10T20:59:05.343 回答
1

这是你想要的?

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

参考:

于 2017-03-10T20:55:37.350 回答