使用NULL值计算

时间:2017-05-19 10:38:01

标签: sql aggregation

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

现在我正在使用这个:         if(“来源指标”='总OPEX',(“Eur Amount” - “EUR Target”)* -1,“Eur Amount” - “EUR Target”)为“Diff。”

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

由于

1 个答案:

答案 0 :(得分:4)

您可以使用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()与数据库有关。