SQLで条件に基づいて異なるカラムや値を一つのカラムとして出力するCASE文の使い方

この記事では、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;
namegendersalutation
田中Mr. 田中
佐藤Ms. 佐藤
山田Mr. 山田
テーブル1: CASE文で接頭語を付けた例

複数のカラムを組み合わせた条件分岐

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;
nameagegenderstatus
田中65特別扱い
佐藤70特別扱い
山田25通常
テーブル2: 複数の条件を組み合わせたCASE文の例

まとめ

CASE文はSQLで条件に基づいて異なるカラムや値を一つのカラムとして出力する強力なツールです。基本的な使用方法から複数の条件を組み合わせた応用例まで、多様なケースで活用することができます。この機能を理解し、上手に使いこなすことで、SQLでのデータ処理がより柔軟になります。

コメント

コメントする

目次