4
    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を超えるように大きい場合、より混乱するため、私に提案してください。

4

1 に答える 1

4

おそらくこのようなものですか?

declare @X int = 0
select 10 / isnull(nullif(@X, 0), 1)
于 2011-08-04T07:01:43.573 に答える