我有一个可以为null的varchar列的表。选择行并指定我希望行的值不等于给定字符串时,它不会返回值为null的行。
例如:
## if `value` is null, that row is ignored
SELECT * FROM test_table WHERE value != 'some string'
我想了解为什么会这样。
答案 0 :(得分:6)
在ANSI
SQL中,NULL
既不等于也不等于任何值,包括它自己。
NULL = 'foo'
NULL != 'foo'
NULL = NULL
NULL != NULL
全部评估为NULL
。要测试空值,您必须在查询中使用is null
或is not null
。