sum 有时会返回空,有时返回0
得到是0
where 中有符合的记录.
记录中该字段的和是0的时候结果是0 .
什么区别呢
这样一个表.
select sum(a) from TEST t where t.b <8 select sum(a) from TEST t where t.b <7
得到是空
通过where 找不到符合条件的记录. sum的结果就是空.
有时候我们希望找不到记录时得到 0 .
我觉得在sql上去处理不是个好的方式. 因为按逻辑确实没找到. 应该在业务层对这样的结果做处理.
毕竟在业务层里,找不到或找到0 这两种情况有的时候是有区别的.
虽然不好但还是说下吧:
oracle中找到空显示为0 是这样 select nvl
(sum(a),0)
mysql 中
select isnull(sum(a),0)