oracle null+字符串问题

select 10 + 10 + 10 from dual
结果是30,完全没问题。

select null + 10 + 10 from dual
结果是空串,但期望的结果是20。

select nvl(null,0) + 10 + 10 from dual
这样处理结果为20。若查询有空值的情况需利用nvl处理,否则运算有误。

select null || 10 || 10 from dual
字符串拼接没有问题。
————————————————
版权声明:本文为CSDN博主「上火了怎么办」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44884300/article/details/89400240

 

20230831 更新

数据存在空值NULL 

如果使用Sum函数的字段含有空值NULL,那么Sum函数在对其求和时就会无法正常工作。一旦有数据存在空值,我们就需要使用NVL函数对其进行处理,将其转化为0来消除问题。

 

A机构   55    6
B机构   87   7

 

A机构    3    6
B机构       7

 

 

未nvl sum求和:

A机构    58     6
B机构              7

 

使用nvl求和

NVL(SUM(S.MEETING_NUM) , 0)

A机构   58    6
B机构   87    7

 

注:使用NVL函数 

在数据表中,如果某一字段存在NULL值,那么直接使用Sum函数进行求和操作时可能会得到不符合实际的结果。此时,我们可以使用NVL函数来将NULL值转换为0,再进行Sum函数操作,从而得到正确的求和结果。 

例如: 

SELECT SUM(NVL(sal, 0)) FROM emp;

Donate捐赠

如果我的文章帮助了你,可以赞赏我 红包,让我继续写出更好的内容)

   

  (微信)                                        (支付宝)

微信/支付宝 扫一扫

posted @ 2019-12-17 18:50  moonsoft  阅读(672)  评论(0编辑  收藏  举报