【问题标题】:Calculations with NULL value具有 NULL 值的计算
【发布时间】:2017-05-19 18:55:27
【问题描述】:

我正在尝试计算两列之间的差异,但有时其中一列的值为 NULL,而 SQL 忽略了这一点。

现在我正在使用这个: if("source indicator" = 'Total OPEX', ("Eur Amount" -"EUR Target") * -1, "Eur Amount" -"EUR Target") as "Diff."

有没有其他方法来计算这个(请注意OPEX值)并得到预期的结果?

谢谢

【问题讨论】:

  • 您使用的是哪个数据库引擎?
  • if 是非标准...

标签: sql aggregation


【解决方案1】:

您可以使用casecoalesce()

(case when "source indicator" = 'Total OPEX'
      then coalesce("Eur Amount", 0) - coalesce("EUR Target", 0) * -1
      else coalesce("Eur Amount", 0) - coalesce("EUR Target", 0)
 end)

case 的优势在于它是 ANSI 标准 SQL,几乎所有数据库都支持。 if() 依赖于数据库。

【讨论】:

    猜你喜欢
    • 2021-06-21
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 2015-07-14
    • 2016-03-06
    • 2021-11-15
    • 1970-01-01
    相关资源
    最近更新 更多