3 回答
TA贡献1818条经验 获得超3个赞
在SQL中,对null值和任何其他值(包括其他值)null)使用比较运算符(例如=, !=, <,等)会导致null,被认为是false为了WHERE子句的目的(严格地说,它是“不正确”,而不是“假”,但效果是一样的)。
理由是null意思是“未知”,所以与null也是“未知”。因此,您将不会通过编码在行上命中。where my_column = null.
SQL提供了用于测试列是否为null.class=‘class 2’>is null和is not null,这是测试null(或者不是null).
下面是一些SQL,显示了各种条件及其效果,如上面所示。
create table t (x int, y int);
insert into t values (null, null), (null, 1), (1, 1);
select 'x = null' as test , x, y from t where x = null
union all
select 'x != null', x, y from t where x != null
union all
select 'not (x = null)', x, y from t where not (x = null)
union all
select 'x = y', x, y from t where x = y
union all
select 'not (x = y)', x, y from t where not (x = y);
只返回一行(如预期的):
TEST X Y
x = y 1 1
TA贡献1802条经验 获得超4个赞
NULL
where x is null
where x = null
TA贡献1860条经验 获得超9个赞
null
null
=
null
where x is null
where x = null
添加回答
举报