Sql where子句中的括号
案例1: 案例2:Sql where子句中的括号,sql,Sql,案例1: 案例2: SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 20 为什么在之后使用情况2括号,其中,这背后的原因是什么及其逻辑?下面的示例中给出了括号的重要性。 当在where子句中组合和以及或运算符以描述这两个运算符之间的优先级时,它们在SQL中使用 需要括号的示例: SELECT * FROM Products WHERE (Price BETWEEN 10 AND 20) AND NOT CategoryID IN (1
SELECT *
FROM Products
WHERE Price NOT BETWEEN 10 AND 20
为什么在
之后使用情况2括号,其中
,这背后的原因是什么及其逻辑?下面的示例中给出了括号的重要性。
当在where子句中组合和
以及或
运算符以描述这两个运算符之间的优先级时,它们在SQL
中使用
需要括号的示例:
SELECT *
FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3)
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'
括号内的结果:
不带括号的结果:
以下示例中给出了括号的重要性。 当在where子句中组合
和
以及或
运算符以描述这两个运算符之间的优先级时,它们在SQL
中使用
需要括号的示例:
SELECT *
FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3)
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'
括号内的结果:
不带括号的结果:
它们是不需要的,但有些人发现它们更容易书写和阅读。(我不…)这只是让查询更容易阅读。。。这更难理解……这里不需要它们,但是处理
或而不是和时的良好做法。不,即使在查询中也不需要括号,因为和优先于或。然而,在我看来,当结合和以及或时,应该始终使用括号。在您的查询中可能不需要它们,但它们大大提高了可读性,因此无论如何都应该使用它们。@ThorstenKettner您是对的。我已经更新了答案@请你至少提供一个你自己的例子好吗?您的是从[外部来源](techontenet.com/sql/and_or.php)中“剪切”出来的。可以很容易地通过谷歌搜索找到。考虑到这种情况,提供一个你自己的例子应该不难。这是为了鼓励原创答案,而不是为了获得声誉而永久复制粘贴。Thanks@NullException当然您请求的示例已提供。。。直接从我的数据库