我遇到错误“遇到零除错误”。在SQL Server 2005中。我知道我有几行正在被零除以导致此错误。所以我想知道当除数为零时是否可以消除这个错误。如果除数为0,它应该返回0.我怎么能这样做?
sum(isnull(cast(S.S_AmountCollected as numeric(10, 2)), 0)) / sum(isnull(cast(S.AmountSold as numeric(10, 2)), 0))
谢谢!
答案 0 :(得分:1)
使用CASE声明:
CASE WHEN SUM(ISNULL(CAST(S.AmountSold as numeric(10, 2)), 0) = 0
THEN 0
ELSE
SUM(ISNULL(CAST(S.S_AmountCollected as numeric(10, 2)), 0))
/
SUM(ISNULL(CAST(S.AmountSold as numeric(10, 2)), 0))
END
答案 1 :(得分:0)
您无法消除此错误,因为除以0的整数具有未定义的值。您必须添加一个显式检查才能获得您期望的行为。