Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 具有空值的计算_Sql_Aggregation - Fatal编程技术网

Sql 具有空值的计算

Sql 具有空值的计算,sql,aggregation,Sql,Aggregation,我试图计算两列之间的差异,但有时其中一列的值为空,而SQL忽略了这一点 现在我用的是: 如果(“来源指标”=“总运营成本”,(“欧元金额”-“欧元目标”)*-1,“欧元金额”-“欧元目标”)为“差异” 是否有其他方法来计算此值(请注意OPEX值)并获得预期结果 谢谢您可以使用case和coalesce(): case的优点是它是ANSI标准SQL,几乎所有数据库都支持它if()依赖于数据库。您可以使用case和coalesce(): case的优点是它是ANSI标准SQL,几乎所有数据库都支持它

我试图计算两列之间的差异,但有时其中一列的值为空,而SQL忽略了这一点

现在我用的是: 如果(“来源指标”=“总运营成本”,(“欧元金额”-“欧元目标”)*-1,“欧元金额”-“欧元目标”)为“差异”

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


谢谢

您可以使用
case
coalesce()


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

您可以使用
case
coalesce()


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

您使用的是哪个数据库引擎?
如果
是非标准的…您使用的是哪个数据库引擎?
如果
是非标准的。。。
(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)