【发布时间】:2016-09-17 18:30:58
【问题描述】:
我想我还没有完全理解 SQL 中 NULL 的含义。我运行了这个 SQL,我希望看到 1 作为输出,但我没有看到:
select 1 where NULL <> -1;
NULL 和 -1 不是不同吗?谁能解释一下为什么“NULL -1”这个子句是 FALSE?
【问题讨论】:
-
基本上,除
IS NULL之外的所有比较都返回“false”或“NULL”。也就是说,它们永远不会为真,并且行会被过滤掉。 -
NULL 不是值,因此无法比较。
-
这就是为什么我们声明
something IS NULL而不是something = NULL -
任何与 NULL 的比较都会导致 Unkown 结果,即使
NULL = NULL也不是 True。
标签: sql