SQL 服务器 LIKE、WILDCARDS、AND、OR 运算符、大括号
SQL Server LIKE, WILDCARDS, AND, OR operator, braces
在查询以 prefix1 或 prefix2 开头的名称列表时需要帮助。这些名称应在其描述(下一列)中包含值 ABC 或 DEF。类似于下面的 select 查询:
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' 运算符来完成此操作,或者有其他更好的方法吗?
这是您要找的吗?
select Name
from Table
where (Name like 'X_%' or Name like 'Y_%')
and (NextCol like 'ABC%' or NextCol like 'DEF%')
参考:
- Logical Operator Precedence
- SQL Logic Operator Precedence: And and Or
你只是少了括号,你走对了。
SELECT Name
FROM Table
WHERE (Name LIKE 'X_%' OR Name LIKE 'Y_%') AND (NextCol LIKE 'ABC%' OR NextCol LIKE 'DEF%')
在查询以 prefix1 或 prefix2 开头的名称列表时需要帮助。这些名称应在其描述(下一列)中包含值 ABC 或 DEF。类似于下面的 select 查询:
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' 运算符来完成此操作,或者有其他更好的方法吗?
这是您要找的吗?
select Name
from Table
where (Name like 'X_%' or Name like 'Y_%')
and (NextCol like 'ABC%' or NextCol like 'DEF%')
参考:
- Logical Operator Precedence
- SQL Logic Operator Precedence: And and Or
你只是少了括号,你走对了。
SELECT Name
FROM Table
WHERE (Name LIKE 'X_%' OR Name LIKE 'Y_%') AND (NextCol LIKE 'ABC%' OR NextCol LIKE 'DEF%')