如何正确理解 SQL 中的 NULL null有哪些常见的意思?( 二 )


复制代码
SELECT * FROM SOME_TABLEWHERE NOT(1 = NULL)和
复制代码
SELECT * FROM SOME_TABLEWHERE 1 = NULL都不会返回数据 , 尽管它们是完整相反的 。
NULL 和 NOT IN如果我有这样的一个查询语句:
复制代码
WHERE SOME_COLUMN = 11很显然 , WHERE 返回 true , 这个语句将返回数据 , 因为 1 在括号列表里是存在的 。
但如果这么写:
复制代码
WHERE SOME_COLUMN = 12很显然 , WHERE 返回 false , 这个查询不会返回数据 , 因为 1 在括号列表里存在 , 但我们说的是“NOT IN” 。
但如果我们把语句改成这样呢?
复制代码
WHERE SOME_COLUMN = 13这里的 WHRE 不会返回数据 , 因为它的成果不是 true 。数字 5 在括号列表里可能不存在 , 也可能存在 , 因为当中有一个 NULL 值(数据库不知道 NULL 的值是什么) 。
这个 WHERE 会返回 NULL , 所以全部查询不会返回任何数据 。
愿望你们现在都清晰该怎么在 SQL 语句中处置 NULL 值了 。


推荐阅读