SQL 速習チュートリアル

SQL CASE 式

1. SQL CASE 式

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

CASE 式は設定された条件を順番に評価し、最初に一致した時点で評価を停止します(プログラミングにおける if-then-else ステートメントのような動作です)。そのため、ある条件が真(TRUE)になると、それ以降の処理は行わずに結果を返します。どの条件も真でない場合は、ELSE 句の値を返します。ELSE 句が定義されておらず、かつどの条件も真でない場合は、NULL を返します。

2. CASE の構文

CASE
  WHEN 条件1 THEN 結果1
  WHEN 条件2 THEN 結果2
  WHEN 条件N THEN 結果N
  ELSE デフォルト結果
END;

3. SQL CASE の使用例

ここでは、CASE 式を使用してデータ(Price:価格)をカテゴリ分けし、各製品がどの価格帯に属するかを示す新しいカラム(PriceCategory)を生成する例を紹介します。

実行例:

SELECT ProductName, Price,
CASE
  WHEN Price < 20 THEN 'Low Cost'
  WHEN Price BETWEEN 20 AND 50 THEN 'Medium Cost'
  ELSE 'High Cost'
END AS PriceCategory
FROM Products;

このクエリを実行すると、Price の値に応じて動的に 'Low Cost'、'Medium Cost'、'High Cost' というラベルが付与された新しいカラムがリザルトセットに含まれます。