MySQL 速習チュートリアル

MySQL CASE 文

1. MySQL CASE 文の概要

CASE 文は、SQL 文の中で指定された条件に基づき、異なる結果を定義するために使用されます。

この文は上から順番に条件を評価していき、最初に一致した(条件が TRUE になった)時点で処理を停止して結果を返します(プログラミングの if-then-else ステートメントと同じ挙動です)。

  • 条件が TRUE になると、その後の条件判定は行わず結果を返します。
  • どの条件も TRUE にならない場合は、ELSE 句の値を返します。
  • ELSE 句が指定されておらず、かつ全ての条件が FALSE だった場合は、NULL を返します。

2. CASE の基本構文

CASE
    WHEN 条件1 THEN 結果1
    WHEN 条件2 THEN 結果2
    WHEN 条件N THEN 結果N
    ELSE 結果
END;

3. MySQL CASE の使用例

以下の例では、CASE 文を使用して価格(Price)データを分類し、各製品がどの価格帯に属するかを示す新しいカラム(PriceCategory)を作成しています。

-- 製品名と価格に加え、CASE 文で作成した「価格カテゴリ」を併せて取得します
SELECT ProductName, Price,
CASE
  WHEN Price < 20 THEN '低価格帯 (Low Cost)'
  WHEN Price BETWEEN 20 AND 50 THEN '中価格帯 (Medium Cost)'
  ELSE '高価格帯 (High Cost)'
END AS 価格カテゴリ
FROM Products;