如何让SQL语句中的聚集函数sum不忽略NULL值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让SQL语句中的聚集函数sum不忽略NULL值相关的知识,希望对你有一定的参考价值。
如何让SQL语句中的sum不忽略NULL值
比如,属性value有1,2,3,NULL
如果我select sum(value) form table显示的是6
而我想按照NULL参与运算结果为NULL的原则,让上条语句的结果也为NULL
我应该怎么做呢?
例:假设value列之和不超过1000。
select case when sum(nvl(value,1000))>1000 then null else sum(value) end from table; 参考技术A 加个case when 先判断是否存在NULL值,如果是 直接输出NULL;如果不是,正常计算 参考技术B
不可能的啊,我经常这样用,看下图基础数据
select sum(b) from tb
结果
如果你这有那样的问题,引用一个函数就是,将null值都当0
isnull(A,0) 函数的意思就是如果a是null,那么a就等于0
select sum(isnull(value,0)) form table
参考技术C decode(sum(value),0,null,sum(value)) 参考技术D select sum(case when value is null then null else value end ) from table聚集函数
5个聚集函数
1.AVG()
返回某列的平均值
只能用于单个列
忽略列值为NULL的行
2.COUNT()
返回某列的行数
COUNT(*) 对表中行的数目进行计数,不管列中包含的是空值还是非空值
COUNT(column) 对特定列中具有值的行进行计数,忽略NULL值
3.MAX()
返回某列的最大值,忽略NULL
4.MIN()
返回某列的最小值,忽略NULL
5.SUM()
返回某列值的和,忽略NULL
聚集不同值
ALL
默认值,对所有行
DISTINCT
包含不同的值
以上是关于如何让SQL语句中的聚集函数sum不忽略NULL值的主要内容,如果未能解决你的问题,请参考以下文章