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 然后抛出“除以零错误遇到错误”所以我使用case when then else end。上面的实现是好的还是可以写得更好,所以请建议我,因为当字段像 10 以上那样巨大时会更加混乱。