Oracle Sum with Null

http://www.oracle.com/technetwork/issue-archive/2005/05-jul/o45sql-097727.html

SUM函数会忽略null值!

在求和时,如果将null值替换为0,可使用:

select sum(nvl(column, 0)) from some_table;

但是如果没有一条符合条件的数据呢?

-- 返回null
select sum(nvl(column, 0)) from some_table where 1 != 1;

此时返回null,如果希望结果是0,则使用:

select nvl(sum(column), 0) from some_table;

如果期望返回数值结果,在求和时总是使用:

select nvl(sum(column), 0) from some_table;

多列求和

比如:

select nvl(sum(column1 + column2), 0) from some_table;

如果column1column2任何一个是null,则column1 + column2结果为null,此时可使用:

select nvl(sum(nvl(column1, 0) + nvl(column2, 0)), 0) from some_table;

你可能感兴趣的:(Oracle Sum with Null)