a = null 与 a is null 有什么区别

186 阅读1分钟

在SQL中,a = null和a is null两者间存在区别:

  1. a = null这个表达式其实是不会返回真或假的,这是由NULL的特殊性质决定的,因为NULL表示值未知或者不存在。因此,即使a的值为NULL,执行a = null时结果也不是TRUE或FALSE,而是unknown。
  2. a is null表示a的值为NULL,简单明了。

因此,a is null是判断a是否为NULL的首选方式。而对于a = null,则需要用IS NULL或IS NOT NULL代替。例如:

SELECT * FROM table WHERE col IS NULL;

SELECT * FROM table WHERE col IS NOT NULL;

而以下操作在SQL中是无效的:

SELECT * FROM table WHERE col = NULL;

SELECT * FROM table WHERE col != NULL;