当除数为0时,Sql错误“遇到零除错误”

时间:2013-02-20 16:35:11

标签: sql

我遇到错误“遇到零除错误”。在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)) 

谢谢!

2 个答案:

答案 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的整数具有未定义的值。您必须添加一个显式检查才能获得您期望的行为。