括号在where子句中使用

时间:2016-04-22 07:37:11

标签: sql

情况1:

SELECT *
FROM Products
WHERE Price NOT BETWEEN 10 AND 20

情况2:

SELECT *
FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3)

为什么在Where之后使用案例2括号,这背后的原因是什么,这是逻辑?

2 个答案:

答案 0 :(得分:2)

括号的重要性在下面的例子中给出。 在where子句中组合SQLAND运算符时,它们在OR中用于描述这两个运算符之间的优先级。

需要括号的示例:

select 
    PK_Branch,
    [Branch Name DE],
    Country 
from 
    DimBranch
where 
    ([Branch Name DE] like 'Lyss (CH)' or [Branch Name DE] like 'Sevilla') and Country like 'Spain'

带括号的结果:

Brackets

没有括号的结果:

Wo Brackets

答案 1 :(得分:1)

括号的重要性在下面的例子中给出。 在where子句中组合SQLAND运算符时,它们在OR中用于描述这两个运算符之间的优先级。

需要括号的示例:

select 
    PK_Branch,
    [Branch Name DE],
    Country 
from 
    DimBranch
where 
    ([Branch Name DE] like 'Lyss (CH)' or [Branch Name DE] like 'Sevilla') 
    and Country like 'Spain'

带括号的结果:

Brackets

没有括号的结果:

Wo Brackets