--AND (ILLOCN LIKE 'XY%' OR ILLOCN LIKE 'HY%' AND ILDCT NOT IN ( 'OV' , 'IJ' , 'IN' , 'IK' ))--AND ((ILLOCN LIKE 'HY%' AND ILDCT NOT IN ( 'OV' , 'IJ' , 'IN' , 'IK' )) OR (ILLOCN LIKE 'XY%' AND ILDCT NOT IN ( 'OV' , 'IJ' , 'IN' ,'IK' )))在一个存储过程里,分别使用以上两句语句,得到的结果集竟然不一样。
请问以上两句有什么不同?
请问以上两句有什么不同?
--1--AND ((1 AND 0 OR (1 AND 0)))
--0
把第一句改为:
--AND ((ILLOCN LIKE 'XY%' OR ILLOCN LIKE 'HY%') AND ILDCT NOT IN ( 'OV' , 'IJ' , 'IN' , 'IK' ))就相同了.
DECLARE @b int
DECLARE @c int
SET @a =1
SET @b = 2
SET @c = 3
IF (@a > 2 OR @b > 1 AND @c <2 )
PRINT 'OJK'
ELSE
PRINT 'XXo'--查询结果--XXo--结论AND的优先级高于OR,因此查询等价于...
IF (@a > 2 OR (@b > 1 AND @c <2 ))
...