-- Start
NULL 是一个很神奇的值,它颠覆了二值逻辑结构(即:真和假),出现了三值逻辑结构(即:真、假和未知)。由于null,我们的 SQL 语句很有可能出现意想不到的结果,试一试下面的语句吧。
CREATE TABLE test(
ID NUMBER(10,0),
NAME VARCHAR2(10)
);
INSERT INTO test values (1, '张三');
INSERT INTO test values (2, '李四');
SELECT * FROM test WHERE ID NOT IN (1, NULL);
你可能认为我们应该查询出李四,但是结果却是什么也查不出来。也许你认为不会有人那么傻,在 NOT IN 里写个 NULL,但是如果 NOT IN 里是一个子查询,而子查询的结果集里有 NULL 值呢?
-- 更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last Edited on 2015-02-13
-- Created by ShangBo on 2015-02-13
-- End