【SQL】CASE句による条件分岐

CASE句とは

CASE句をSQL文で使用することにより、条件分岐を行うことができます。

CASE句はSELECT文だけでなく、UPDATE文にも使用することができます。

 

CASE句の使い方

SELECT
  CASE 
    WHEN 条件1 THEN 条件を満たしたら表示する内容1
    WHEN 条件2 THEN 条件を満たしたら表示する内容2
    ELSE どれにも当てはまらない場合表示する内容3
  END
FROM テーブル名;

CASE句を使うには、「CASE」と「END」で囲んだ中に、条件を記述します。

条件を記述している箇所は下記になります。

WHEN 条件式1 THEN 条件を満たしたら表示する内容1
WHEN 条件式2 THEN 条件を満たしたら表示する内容2
ELSE どれにも当てはまらない場合表示する内容3

条件を複数記述することで、複数の条件を指定できます。

また、どの条件にも当てはまらなかった場合の処理は「ELSE」を使って記述します。

 

式を省略した書き方

CASEの真後ろにカラム名を指定することで、条件式を書かずに分岐させることも可能です。

その場合、WHENの後ろに指定した情報がCASEの真後ろに書いたカラム名と「=」ならば条件を満たしたことになります。

SELECT
  fruits,
  CASE fruits -- CASEの真後ろにカラム名を指定
    WHEN "りんご" THEN "りんごです"
    ELSE "りんごではありません"
  END
FROM food;

このような使い方もできます。

 

おすすめ書籍

■おすすめ入門書①
スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)

■おすすめ入門書②
いちばんやさしい SQL 入門教室

■おすすめ入門書③
ゼロからわかる SQL超入門 (かんたんIT基礎講座)