SUM函数在Oracle 12c上考虑NULL

时间:2019-05-10 08:01:51

标签: sql sum oracle12c

我试图在sql上执行SUM()函数时获取空值,但我发现sql现在考虑了空值,因此,如果列具有不同的值和空值,则总和可以很好地计算出来。例如,我的SUM_EXAMPLE列具有不同的值:NULL-3-4-NULL-6

因此,如果我执行下一个查询:从表T中选择sum(SUM_EXAMPLE),结果为13,而不是null。

如果我还有另一列SUM_COLUMNS仅具有NULL,则从表T中选择总和(SUM_COLUMNS)的结果为NULL。这是对oracle的更改或改进,因此无需使用isNull或NVL之类的功能就可以正确执行此功能吗?

谢谢

1 个答案:

答案 0 :(得分:2)

聚合函数(SUM,AVERAGE等)通常会忽略NULL值。因此,如果该列中至少有一个非null值,则会得到一个非null的结果。

如果要聚合的列中的所有值均为null,则几乎没有其他选择,只能返回null作为结果。

请注意,这与标量函数的行为不同。例如:如果x,y或两者均为null,则“ Select x + y”将返回null。如果x和y都具有非空值,则只会得到非空结果。