omachizura

SQLの基本的なことからスタートし、高度な検索・集計方法などの応用テクニックまでできるスキルを紹介します。


CASE文で条件分岐処理を行う

男=0、女=1の性別カラムを持つ「社員マスタ」テーブルがあります。

社員マスタ
社員コード社員名性別
1テスト社員10
2テスト社員21
3テスト社員30
4テスト社員41

課題

社員全員の性別を表示したい。

SQLは下記のようになります。

SELECT 社員名
  ,CASE 性別
    WHEN 0 THEN '男'
    WHEN 1 THEN '女'
    ELSE '' END AS 性別
FROM 社員マスタ AS T1

--または

SELECT 社員名
  ,CASE
    WHEN 性別 = 0 THEN '男'
    WHEN 性別 = 1 THEN '女'
    ELSE '' END AS 性別
FROM 社員マスタ AS T1
実行結果
社員名性別
テスト社員1
テスト社員2
テスト社員3
テスト社員4

SELECT句で取得した値によって出力する項目を変更するにはCASE文を使用します。

上記の通り、CASE文には2通りの指定の仕方があります。どちらの場合でも必ず、どの条件にも当てはまらなかった場合に出力するELSEを忘れずに使用する必要があります。また、CASE文の最後には必ずENDをつけるようにします。そして、AS 別名を指定して、列名を指定します。

CASE文で効率よく集計する で詳しく扱いますが、GROUP BYとはとても相性が良く、うまく組み合わせると、複雑になりそうな集計処理もシンプルに記述することができます。





前へ
1

前へ
1