在SQL Server 2014中遇到零除错误

时间:2017-01-18 14:56:05

标签: sql sql-server

在我尝试创建的查询的这个特定部分中,我得到了一个"除以零"错误。我相信这是因为我试图将ARTran.Qty除以null。我不确定如何解决这个问题...(我在查询的下一部分使用Cast我尝试将此数字用作小数

(CASE WHEN ([ARTran].[UOM] LIKE 'EACH') 
         THEN CAST([ARTran].[Qty] AS VARCHAR(30)) 
      ELSE CAST((ARTran.Qty / InventoryItem.UsrLength) AS VARCHAR(30))
 END)

有人能指出我正确的方向吗?我已经看过其他几个主题,但我还是不确定如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

使用NULLIF解决此问题。

(CASE WHEN ([ARTran].[UOM] LIKE 'EACH') 
      THEN CAST([ARTran].[Qty] AS VARCHAR(30)) 
      ELSE CAST((ARTran.Qty / NULLIF(InventoryItem.UsrLength, 0) AS VARCHAR(30))
END)