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.