【SQL】CASE式の使い方!わかりやすく解説する!

Web技術
スポンサーリンク

SQLで場合分けってどうやってするの?

CASE式ってどうやって使うの?

わかりやすく教えてほしい!

こういった疑問にこたえます。

この記事を読めば
  • SQLで条件分岐を使えるようになる
  • CASE式の使い方がわかるようになる

エンジニアの僕がわかりやすく解説します。

CASE式とは

CASE式は、CASE(場合)という名前が示すように、「場合分け」を行う場合に使います。

この場合分けのことを条件分岐とも言います。

CASE式の構文は次の通りです。

CASE
  WHEN <評価式> THEN <式>
  WHEN <評価式> THEN <式>
  WHEN <評価式> THEN <式>vv
  ・
  ・
  ・
  ELSE <式>
END

<評価式>とは、戻り値が真理値になるような式のことです。

=、!=、LIKEやBETWEENといった術後を使って作る式だと考えてください。

CASE式は最初のWHEN句の評価式から評価していきます。

もし、評価式の戻り値が真(TRUE)ならば、THEN句で指定された式が戻されてCASE式が終了します。

もし、評価式の戻り値が真でなければ、次のWHEN句の評価に移ります。

もし、どのWHEN句の評価式にも当てはまらない場合はELSEで指定された式が返され、CASE式が終了します。

CASE式の使い方

実際にCASE式を使ってみましょう。

例えば、次のようなshohinテーブルがあったとします。

shohin_meibunruikakaku
バナナ食品100
鉛筆事務用品50
フライパンキッチン用品200
Tシャツ衣類1500
ボールペン事務用品200
プリン食品150
shohinテーブル

このshohinテーブルのbunruiについて、表示を変えて出力したいとします。

食品の場合は「A:食品」、事務用品の場合は「B:事務用品」、食品と事務用品以外は「C:その他」と出力するには次のようにSQLを記述します。

SELECT 
  shohin_mei,
  CASE
    WHEN bunrui = '食品' THEN 'A:' || bunrui
    WHEN bunrui = '事務用品' THEN 'B:' || bunrui
    ELSE  'C:その他'
  END AS abc_bunrui,
  kakaku
FROM shohin;

実行結果

shohin_meiabc_bunruikakaku
バナナA:食品100
鉛筆B:事務用品50
フライパンC:その他200
TシャツC:その他1500
ボールペンB:事務用品200
プリンA:食品150
shohinテーブル

CASEの使い方まとめ

解説の内容をまとめます。

  • CASE式は場合分けを行う場合に使用する
  • 評価式とは真理値を返す式のこと
  • 評価式を上から順に評価し、真であればTHEN句の式返す
  • ELSEはどの評価式にも当てはまらなかった場合に返す式を記述する

以上、お疲れ様でした。

コメント

タイトルとURLをコピーしました