对于什么x是
表达
x IS NOT NULL是不等于NOT(x IS NULL),如在2VL的情况下
(引用这个答案,引用Fabian Pascal 数据库管理中的实际问题 - 思维从业者的参考 - 接近答案的结尾)
我的猜测是什么时候 这个猜测是不正确的.x IS NULL 是 NULL,但我无法猜测是什么时候(即我没有检查SQL标准).
Tho*_*mas 15
从我读过的内容来看,Fabian Pascal并不是指与Null相比的标量值,而是很少实现的ROW类型.在标准中,我们的想法是您可以比较一个表(行)IS NULL来确定是否所有值都设置为NULL值.因此,X IS NULL意味着所有值都设置为NULL值,X IS NOT NULL意味着没有值设置为NULL值,NOT (X IS NULL)并且意味着并非所有值都设置为NULL值,或者换句话说,存在至少一个未设置的值为NULL.当然,我在这里轻轻地踩着巨人的肩膀,但这就是我对他的陈述的解释.
Dan*_*olo 10
x IS NULL永远不会NULL如此,他们对所有人都是一样的x
真相表啊啊:
+--------+-------------+---------+--------------+
| x |x IS NOT NULL|x IS NULL|NOT(x IS NULL)|
+--------+-------------+---------+--------------+
|NULL | FALSE | TRUE | FALSE |
|NOT NULL| TRUE | FALSE | TRUE |
+--------+-------------+---------+--------------+
Run Code Online (Sandbox Code Playgroud)
请注意,第2列和第4列对于x(NULL或者NOT NULL)的所有潜在值都是相同的