今天在帮同事看一个数据库问题. 问题是 where xxx != 1 ,这个过滤条件 不能将这个字段为空的字段过滤出来. 于是做了以下尝试
select
case
when null = 1 then '1'
when null != 1 then '2'
else '3' end result
from dual
结果为3 , 于是查了下 SQL NULL 值 , 发现以下结论
1 NULL 值是遗漏的未知数据
2 无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>
写sql只能用 is null / is not null 或者isnull()转成其他值再做判断了.