计算列的语法不正确

时间:2019-03-05 15:12:36

标签: sql sql-server

我想在SQL Server 2017 Developer中创建一个计算列为

ISNULL([Nominator]/NULLIF([Denominator]), 0) AS [Recidivation]  

但这会引发错误

  

'('附近的语法不正确。

此语法有效:

[Nominator]/[Denominator] AS [Recidivation]

我一定是瞎子或其他东西,但是有人知道如何不能阻止上图所示的计算列被零除吗?

我们将不胜感激。谢谢。

1 个答案:

答案 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)