繁体   English   中英

通过计算获得两个值时,防止被零除

[英]prevent divide by zero when both values are obtained from a calculation

我正在尝试完成以下任务:

(值_a +值_b)/(值_c +值_d)

通常,我避免使用以下方法除以零错误:

CASE WHEN value_a + value_b = 0
     THEN 0
     ELSE (value_a + value_b)/(value_c + value_d)
END

由于某种原因,它不起作用,这使我想知道过去我的结果集中是否有一个从未包含零。

对此,我们将不胜感激。

您正在检查分子 ,而不是分母

CASE WHEN value_c + value_d = 0
     THEN 0
     ELSE (value_a + value_b)/(value_c + value_d)
END

另一种方法是使用NULLIFCOALESCE

COALESCE((value_a + value_b)/NULLIF((value_c + value_d),0)
  ,0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM