Oracle NULL值不参与运算判断

7 篇文章 0 订阅

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;

在这里插入图片描述

参与运算后的空值结果都为空

多以分析数值之间的运算逻辑的时候习惯性的使用

与运算后的空值结果都为空

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值