okinawa

IT勉強メモ

SQL CASE式について

CASE式の書ける所

式なので「1+1」が書けるところならどこでもOK。

CASE式はELSE句を必ず書くべし!

ELSE句を省略するとNULLが入る。
省略すると思わぬところでNULLが入るバグに繋がるので、ELSEを書く癖をつけましょう。

・例
給料30万円以上は1.5倍
給料20万円以下は2倍にする
下記SQLだと該当しない人は給料がNULLになってしまう!!! ボランティア労働!!!

UPDATE SALARY
SET VALUE = CASE WHEN SALARY >= 300000
            THEN SALARY * 1.5
            WHEN SALARY <= 200000
            THEN SALARY * 2.0

正しくはこっち↓

UPDATE SALARY
SET VALUE = CASE WHEN SALARY >= 300000
            THEN SALARY * 1.5
            WHEN SALARY <= 200000
            THEN SALARY * 2.0
            ELSE SALARY --忘れずに