【问题标题】:SUM function consider NULL on Oracle 12cSUM 函数在 Oracle 12c 上考虑 NULL
【发布时间】:2019-09-28 02:28:48
【问题描述】:

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

所以如果我执行下一个查询:select sum(SUM_EXAMPLE) FROM TABLE T 结果是 13 而不是 null。

如果我只有另一列 SUM_COLUMNS 为 NULL,则 select sum(SUM_COLUMNS) FROM TABLE T 的结果为 NULL。它是对 oracle 的更改或改进,所以它可以在不使用 isNull 或 NVL 之类的函数的情况下正确执行此功能?

谢谢

【问题讨论】:

  • 您之前使用过多少版本的Oracle?您在哪个版本中看到了相反的行为?
  • @Developer_Doubts 。 . .你已经描述了这些函数是如何工作的,所以这个问题没有意义。

标签: sql sum oracle12c


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多