Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql where子句中的括号_Sql - Fatal编程技术网

Sql where子句中的括号

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

案例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,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当然您请求的示例已提供。。。直接从我的数据库