处理“除以零错误遇到错误”

时间:2011-08-04 06:53:24

标签: sql-server query-optimization divide-by-zero

    SELECT   ((CASE WHEN (qid2.AgeBelow_16 - qid1.AgeBelow_16)= 0 THEN 1 ELSE (qid2.AgeBelow_16- qid1.AgeBelow_16) END )/ (CASE WHEN [qid1].AgeBelow_16= 0 THEN 1 ELSE [qid1].AgeBelow_16  END))*100 AS AgeBelow_16_Percent, 
    -- otherfields

    FROM
    -- whole query

我使用上面的查询来计算旧值和新值的百分比差异。主要问题是 0 如果任何字段值0然后抛出“除以零错误遇到错误”所以我使用情况,然后结束。上面的实现是好的还是可以写得更好然后请建议我,因为当字段像10以上那样巨大时会更加混乱。

1 个答案:

答案 0 :(得分:4)

或许这样的事情?

declare @X int = 0
select 10 / isnull(nullif(@X, 0), 1)