■94552 / ) |
Re[4]: SQLサーバーの計算式ででNULLが表示される |
□投稿者/ 魔界の仮面弁士 (2694回)-(2020/04/21(Tue) 10:47:12)
|
■No94551 (たかし さん) に返信 > shu さんの方法でうまくいきました。 > CASE WHEN 有給休暇累計日数 = 0.0 THEN IsNull(有給休暇合計日数 , 0) ELSE IsNull(有給休暇合計日数 , 0) + IsNull(有給休暇累計日数 , 0) END
その CASE 式は、本当に必要ですか?
元質問の CASE 式が NULL を返すパターンというのは、 ・有給休暇累計日数 が NULL のとき ・有給休暇合計日数 が NULL のとき のいずれかのケースのはずです。(最初の質問では、この前提が間違っていたようですが)
そしてこの場合、CASE 式は不要で、shu さんが書かれたように ISNULL 関数だけで事足りるでしょう。
ISNULL(有給休暇合計日数, 0.0) + ISNULL(有給休暇累計日数, 0.0)
ただし、たとえば NULL 値を 0.0 相当として扱いつつも、 累計と合計が両方とも NULL のときだけは NULL を返したいような場合には、 CASE を使う意味もあるかもしれません。
CASE WHEN 有給休暇累計日数 IS NULL AND 有給休暇累計日数 IS NULL THEN NULL ELSE ISNULL(有給休暇合計日数, 0.0) + ISNULL(有給休暇累計日数, 0.0) END
|
解決済み
|