SELECT文の中で条件分岐を行うには、DECODE関数を使用します。
構文
DECODEの構文は以下の通りです。
- (構文)
- DECODE(<値>, <比較値1>, <TRUE時の戻り値>, <比較値2>, <TRUE時の戻り値>, ..., <その他時の戻り値>)
サンプルコード
以下のようなテーブルを想定します。
名前 | 合否フラグ |
---|---|
田中 | 0 |
山田 | 1 |
佐藤 | 9 |
例)合否フラグが1の時は〇、0の時は×、それ以外の時は-を表示する
1 2 3 4 5 |
SELECT 名前, DECODE(合否フラグ, 1, '〇', 0, '×', '-') AS 合否 FROM sampletable; |
【結果】
- SQL*Plus
- 名前 合否 ------ ----------------------------- 田中 × 山田 〇 佐藤 -
メモ
- DECODE関数の引数は255個まで指定できます。
(結果、値と結果で1セットと数えると、最大126個の比較が可能です。) - CASE~WHEN句を使っても同様の分岐を行うことができます。