SQLのCASEステートメントは、プログラミング言語におけるif-else文に似た機能を提供し、データベース内で条件に応じて異なる値を返します。この記事では、CASEステートメントの基本的な使い方から高度なテクニックまで、具体的な例を交えて詳しく解説します。
目次
CASEステートメントの基本
CASEステートメントは、与えられた条件に基づいて特定の値を返すSQLの構文です。一般的な形は以下のようになります。
CASE
WHEN 条件1 THEN 値1
WHEN 条件2 THEN 値2
...
ELSE その他の値
END
簡単な例
例えば、顧客テーブルがあり、それぞれの顧客にステータスを割り当てたいとします。ステータスは「新規」「一般」「VIP」の3種類で、購入金額によって決まるとします。
購入金額 | ステータス |
---|---|
0 ~ 1000円 | 新規 |
1001円 ~ 5000円 | 一般 |
5001円以上 | VIP |
このような場合のSQLクエリは以下のようになります。
SELECT name,
CASE
WHEN amount <= 1000 THEN '新規'
WHEN amount <= 5000 THEN '一般'
ELSE 'VIP'
END as status
FROM customers;
高度な使い方
CASEステートメントは非常に柔軟であり、多くの場面で使うことができます。
複数条件の組み合わせ
複数のカラムを考慮に入れたい場合もCASEステートメントが有用です。
購入金額 | 会員年数 | ステータス |
---|---|---|
5001円以上 | 1年未満 | VIP新規 |
5001円以上 | 1年以上 | VIP継続 |
この場合のSQLクエリは以下のようになります。
SELECT name,
CASE
WHEN amount >= 5001 AND membership < 1 THEN 'VIP新規'
WHEN amount >= 5001 AND membership >= 1 THEN 'VIP継続'
ELSE 'その他'
END as status
FROM customers;
まとめ
CASEステートメントはSQLで条件に応じて異なる値を返すための非常に強力なツールです。基本的な使い方から複雑な条件分岐まで、多くの場面で活躍します。特に、ビジネスロジックが複雑な場合や、データ分析で異なるケースを分けて評価したい場合には、CASEステートメントが非常に有用です。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント