この記事では、SQLの`CASE`文を使用して、条件に基づいて異なるカラムや値を一つのカラムとして出力する方法について詳しく解説します。CASE文は非常に強力なツールであり、データの条件付き処理を簡単に実装することができます。この記事では基本的な使い方から応用例まで、具体的なコードとともに説明します。
目次
CASE文とは
CASE文はSQLの条件分岐を行うための文です。これにより、特定の条件に一致する行や値に対して異なる処理を施すことができます。
基本的な構文
CASE文の基本的な構文は以下の通りです。
CASE
WHEN 条件1 THEN 値1
WHEN 条件2 THEN 値2
ELSE その他の値
END
CASE文の基本的な使用方法
単純な条件分岐
単純な条件分岐を行う例として、あるテーブルに「性別」カラムがあり、「男」「女」のデータが格納されているとします。この「性別」カラムを基に、「Mr.」または「Ms.」といった接頭語を付けた新しいカラムを作成するケースを考えます。
SELECT name,
CASE gender
WHEN '男' THEN 'Mr. ' || name
WHEN '女' THEN 'Ms. ' || name
ELSE 'N/A'
END AS salutation
FROM table_name;
name | gender | salutation |
---|---|---|
田中 | 男 | Mr. 田中 |
佐藤 | 女 | Ms. 佐藤 |
山田 | 男 | Mr. 山田 |
複数のカラムを組み合わせた条件分岐
ANDやORを使った複合条件
CASE文では、複数の条件を組み合わせて複雑な条件分岐を作成することも可能です。以下の例では、`age`と`gender`の2つのカラムを使って、特定の条件に合致する場合に「特別扱い」と表示します。
SELECT name,
CASE
WHEN age >= 60 AND gender = '男' THEN '特別扱い'
WHEN age >= 60 AND gender = '女' THEN '特別扱い'
ELSE '通常'
END AS status
FROM table_name;
name | age | gender | status |
---|---|---|---|
田中 | 65 | 男 | 特別扱い |
佐藤 | 70 | 女 | 特別扱い |
山田 | 25 | 男 | 通常 |
まとめ
CASE文はSQLで条件に基づいて異なるカラムや値を一つのカラムとして出力する強力なツールです。基本的な使用方法から複数の条件を組み合わせた応用例まで、多様なケースで活用することができます。この機能を理解し、上手に使いこなすことで、SQLでのデータ処理がより柔軟になります。
created by Rinker
¥4,554
(2024/09/08 04:25:02時点 Amazon調べ-詳細)
コメント