在SQL Server中使用“OR”和“AND”

时间:2013-08-19 16:18:12

标签: sql-server sql-server-2008

正在使用

( Condition A or Condition B and Condition C )

相同

( Condition A and Condition C) OR (Condition B and Condition C)

3 个答案:

答案 0 :(得分:3)

没有。第一个条件是:

(Condition A) OR (Condition B and Condition C)

第二个是:

(Condition A and Condition C) OR (Condition B and Condition C)

您可以清楚地看到它们之间的区别。

答案 1 :(得分:1)

  

第一个表明aB and C必须匹配

     

第二个表明a and cb and c必须匹配

(A)或(B和C)*IS NOT*(A和C)或(B和C)

希望这会更有意义..

答案 2 :(得分:1)

这里的根本问题是,在混合运算符时应该包括parens。因为and优先,正如所写,你要问是否

(A or (B and C))

相当于

((A and C) or (B and C))

......答案是否定的。在A, B, and C分别为true, false, and false的情况下,第一个条件的计算结果为true,而第二个条件的计算结果为false

为了使它们等效,您可以在第一个表达式中添加括号,如下所示:

((A or B) and C)

在这种情况下,对于A, B, and C的每个值组合,它将评估为与((A and C) or (B and C))相同的值。