我试图完成以下操作:
(value_a + value_b)/(value_c + value_d)
通常我已经避免了零除错误:
CASE WHEN value_a + value_b = 0
THEN 0
ELSE (value_a + value_b)/(value_c + value_d)
END
由于某些原因,这不起作用,这让我想知道过去我的一个结果集是否从未包括零。
对此的任何指示都将非常感激。
答案 0 :(得分:8)
您正在检查分子,而不是分母:
CASE WHEN value_c + value_d = 0
THEN 0
ELSE (value_a + value_b)/(value_c + value_d)
END
另一种方式是使用NULLIF
和COALESCE
:
COALESCE((value_a + value_b)/NULLIF((value_c + value_d),0)
,0)