使用NOT IN時,要注意集合中有沒有NULL值,有的話會返回FALSE。
SELECT 'YES'
FROM DUAL
WHERE 'A' IN ('A', 'B', 'C', NULL);
'YES'
-----
YES
1 row selected.
SELECT 'YES'
FROM DUAL
WHERE 'A' NOT IN ('B', 'C', NULL);
no rows selected.
使用NOT IN時,要注意集合中有沒有NULL值,有的話會返回FALSE。
SELECT 'YES'
FROM DUAL
WHERE 'A' IN ('A', 'B', 'C', NULL);
'YES'
-----
YES
1 row selected.
SELECT 'YES'
FROM DUAL
WHERE 'A' NOT IN ('B', 'C', NULL);
no rows selected.