Oracle的空值并不是一个值,它和‘’是不同的,一般用Null来判断。
select * from lyy_11 a where a.acc_no is null
下面来说一下Null值得一些注意事项:
(1) Null <> Null
记住Null和Null是不相等的,判断一个字段 等于 等一个字段, 当两个字段 都为null时是无法匹配出来的。
(2)如果表的某列中含有空值,当该空值要参与计算时,计算的结果依然是空值,一般用NVl来处理空值
下面一个查询,balance存在空值,直接计算得到的结果还是空值,如果对空值做了nvl转换为0再计算就可以得到正确结果了。
(3)null 与 聚合函数
当某列中含有null的记录,使用sum,min、max,avg等都会把null记录忽略掉,唯有count是一个例外,会把null包含进去。
上面查询使用avg函数的平均值 实际是除去null值的平均数。
所以我们在做统计分析的时候一定要提前处理空值记录,否则影响我们数据统计的准确性。