在我尝试创建的查询的这个特定部分中,我得到了一个"除以零"错误。我相信这是因为我试图将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)
有人能指出我正确的方向吗?我已经看过其他几个主题,但我还是不确定如何解决这个问题。
答案 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)