我想在SQL Server 2017 Developer中创建一个计算列为
ISNULL([Nominator]/NULLIF([Denominator]), 0) AS [Recidivation]
但这会引发错误
'('附近的语法不正确。
此语法有效:
[Nominator]/[Denominator] AS [Recidivation]
我一定是瞎子或其他东西,但是有人知道如何不能阻止上图所示的计算列被零除吗?
我们将不胜感激。谢谢。
答案 0 :(得分:3)
您需要额外的, 0
。我也更喜欢标准的COALESCE()
函数。所以:
COALESCE(Nominator / NULLIF(Denominator, 0), 0) AS [Recidivation]
我还认为case
的意图可能更清楚:
(CASE WHEN Denominator = 0 or Denominator IS NULL THEN 0
ELSE Nominator / Denominator
END)