007中有這樣一個多行子查詢的例子,怎麼也想不通,不理解,做個記號。
SELECT emp.last_name
FROM employees emp
WHERE emp.employee_id NOT IN
(SELECT mgr.manager_id
FROM employees mgr);
no rows selected
在這裡,由於子查詢的反回結果中包含一個null值,而任何與NULL比較的結果都是NULL,再加NOT IN ALL的規則,所以這裡沒有任何行反回。
切記,在=all、not in all(<>all)的子查詢條件判斷中,子查詢反回的結果中千萬不可以包含空值,=any、<>any的子查詢可以包含空值。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7608831/viewspace-676073/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7608831/viewspace-676073/