具有 NULL 值的计算
Calculations with NULL value
我正在尝试计算两列之间的差异,但有时其中一列具有 NULL 值并且 SQL 忽略了它。
现在我正在使用这个:
如果("source indicator" = 'Total OPEX', ("Eur Amount" -"EUR Target") * -1, "Eur Amount" -"EUR Target") 作为"Diff."
有没有其他方法可以计算这个(请注意OPEX值)并得到预期的结果?
谢谢
您可以使用 case
和 coalesce()
:
(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()
依赖于数据库。
我正在尝试计算两列之间的差异,但有时其中一列具有 NULL 值并且 SQL 忽略了它。
现在我正在使用这个: 如果("source indicator" = 'Total OPEX', ("Eur Amount" -"EUR Target") * -1, "Eur Amount" -"EUR Target") 作为"Diff."
有没有其他方法可以计算这个(请注意OPEX值)并得到预期的结果?
谢谢
您可以使用 case
和 coalesce()
:
(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()
依赖于数据库。