Oracle NULL值不参与运算判断
Posted 大树的困惑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle NULL值不参与运算判断相关的知识,希望对你有一定的参考价值。
Oralce 中NULL 值不参与运算判断
在数据分析中,设计到一些数值运算,如果其中某个值为空,
会导致该数值被跳过(不是true,或者false)
create table t_null_test as (
SELECT decode(round(dbms_random.value(1,2)),1,null,2) as col1 , 12 as col2 FROM dual connect by level <10
)
生成若干的测试数据进行测试;
--取col1+col2 > 0 的数据,观察数据可知,有个写死12的字段
SELECT a.*,rowid FROM t_null_test a where col1+col2>0;
返回的结果是不包含那些NULL值的行的
--无论判断条件是小于还是不等于,都不能匹配到那个存在null值
SELECT a.*,rowid FROM t_null_test a where col1+col2<0;
SELECT a.*,rowid FROM t_null_test a where col1+col2<>0;
只有通过
SELECT a.*,col1+col2 as su,rowid FROM t_null_test a where col1+col2 is null;
参与运算后的空值结果都为空
多以分析数值之间的运算逻辑的时候习惯性的使用
与运算后的空值结果都为空
以上是关于Oracle NULL值不参与运算判断的主要内容,如果未能解决你的问题,请参考以下文章