Oracle null值处理
数据库处理null值特点:除了nvl()函数以及 || 之外,任何函数、运算符遇到值为 null 或者 ‘’ 的数据都会被过滤掉 备注:oracle数据库中 null 等价于 ‘’
with T as (SELECT '101' ID,null as the_name from dual)
SELECT 1 "序号",count(*) NUM FROM T union all
SELECT 2,count(the_name) NUM FROM T union all
SELECT 3,count(*) NUM FROM T WHERE T.the_name = '' union all
SELECT 4,count(*) NUM FROM T WHERE T.the_name != 'XXX' union all
SELECT 5,count(*) NUM FROM T WHERE instr(T.the_name,'XXX') = instr(T.the_name,'XXX') union all
SELECT 6,count(*) NUM FROM T WHERE T.the_name = T.the_name
运行结果
总结
想要判断null 只能用 is null 或者 nvl(字段,非空特定字符) = 非空特定字符
同理判断非null用 is not null 或者 nvl(字段,非空特定字符) != 非空特定字符
但是在修改或插入数据的时候需要用 "="等号赋值而不能用 is null
update Table SET name = NULL WHERE id = 1