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


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


推荐阅读