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值不参与运算判断的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库中如何使得插入的空值不显示为null

Oracle NULL字段使用总结

判断:ORACLE中,用==NULL来判断列值是不是为空,

oracle 查询条件中判断两个字段相等时 一个字段为空则跳过

oracle null

oracle单行函数 之 通用函数