今天看了cookbook的书.43页中.
SELECT DEPTNO
FROM DEPT
WHERE DEPTNO NOT IN (10,50,NULL)
同等于
SELECT DEPTNO
FROM DEPT
WHERE NOT (DEPTNO=10 OR DEPTNO=50 OR DEPTNO IS NULL)
这种情况下,当DEPTNO值为50时,表达式的输出为:
not (DEPTNO = 10 OR DEPTNO=50 OR DEPTNO IS NULL)
(FALSE OR FALSE OR NULL)
(FALSE OR NULL)
NULL
这里有疑问.
为什么是
(FALSE OR FALSE OR NULL)
不是
(FALSE OR TRUE OR NULL)吗? 50应该满足第二个条件的啊..
谁能解释一下.
------解决方案--------------------
对,可能是有误
(DEPTNO=10 OR DEPTNO=50 OR DEPTNO IS NULL)
false or true or false
NOT (false or true or false)=false
即=50的记录条件不满足NOT IN (10,50,NULL)