具有 NULL 值的计算

Calculations with NULL value

我正在尝试计算两列之间的差异,但有时其中一列具有 NULL 值并且 SQL 忽略了它。

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

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

谢谢

您可以使用 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() 依赖于数据库。