はじめに
SQLを使ってデータを操作・表示する際、条件によって異なる値を返したいケースがあります。
そんなときに役立つのが「CASE式」です。
この記事では、CASE式の基本的な使い方と実用例を、個人の備忘録としてまとめています。
書こうと思ったきっかけ
実務でデータベースから集計結果を表示する際に、「条件によって出力値を変えたい」という場面が多くありました。IF文のような感覚で使えるCASE式を整理することで、より柔軟なSQLを書くための参考にしようと思いました。
CASE式とは?
CASE式は、SQL文の中で条件分岐を行うための構文です。IFやswitch文のような役割を果たし、条件に応じて異なる値を返すことができます。
基本構文:
CASE
WHEN 条件1 THEN 値1
WHEN 条件2 THEN 値2
...
ELSE デフォルト値
END
SELECT句、WHERE句、ORDER BY句など、さまざまな箇所で使用可能です。
使用例
1. 評価に応じた文字列の変換
SELECT 名前,
点数,
CASE
WHEN 点数 >= 80 THEN '優'
WHEN 点数 >= 60 THEN '良'
WHEN 点数 >= 40 THEN '可'
ELSE '不可'
END AS 評価
FROM 成績表;
2. フラグのON/OFFを表示用に変換
SELECT ユーザーID,
メール配信フラグ,
CASE メール配信フラグ
WHEN 1 THEN '配信中'
WHEN 0 THEN '停止中'
ELSE '不明'
END AS 配信ステータス
FROM ユーザー一覧;
まとめ
CASE式は、SQL文における柔軟な条件分岐を実現する強力なツールです。
IF文感覚で使えるため、数値やフラグに応じた文字列変換、表示調整、グループ化などに非常に便利です。
シンプルな集計処理にとどまらず、出力の表現力を高めるためにも、CASE式は積極的に活用していきたい構文のひとつです!