欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle的NULL和0

程序员文章站 2022-04-25 21:12:35
...

昨天做个报表,客户说怎么把明细相加和汇总行的值不一样呀。想了想,怎么可能呀,我写的报表有个习惯,为了赶时间,通常是把汇总

一直以来,大师们就告诉我们Oracle中的NULL与0是不一样的,什么区别啊。到我实践的时候,早忘了那些告诫。

昨天做个报表,客户说怎么把明细相加和汇总行的值不一样呀。想了想,怎么可能呀,我写的报表有个习惯,为了赶时间,通常是把汇总行直接union all select sum() from (明细)。这么写应该是正常的呀,怎么可能明细相加会不等于汇总行的值。

限制明细表的数据,手工加了下,再用sum(),果然数据不一致,疯了,怎么可能。突然想起了null值的问题。加了nvl(字段名,0),之后,在汇总,数据正常了。要是这样我的所有报表可能都需要检查了,,于是就把源头找出,把空的全部改为0,这样就好办了。

后来,再试了一下四则运算,结果都是null,大于,小于和等于则都不理会null。

Oracle的NULL和0