SQL OracleのDECODEのサンプル

OracleのDECODEのサンプルです。

目次

サンプル DECODEとは
  select句で使用する
  where句で使用する

DECODEとは

DECODE(列名,値1,値1の時に返す値,値2,値2の時に返す値・・・,それ以外に返す値)

select句で使用する

以下のテーブルがあるとします。

colorテーブル
id name
1 red
2 blue
3 grey

上記テーブルに対してdecodeを使用します。

select decode(name,'red','赤','blue','青','その他') as test
from color;

1行目は、decodeで、colorテーブルのname列の値がredであれば「赤」、blueであれば「青」、それ以外の値であれば「その他」を返します。

結果は、以下のとおりです。

test
その他

where句で使用する

decodeはwhere句でも使用できます。

以下のテーブルがあるとします。

colorテーブル
id name
1 red
2 blue
3 grey

例1

上記テーブルに対してdecodeを使用します。

select * from color
where name = decode(name,'red','red','orange');

2行目は、decodeでname列の値がredのときはred、それ以外のときは、orangeで検索します。

結果は、以下のとおりです。

colorテーブル
id name
1 red

nameのredが一致した行が表示されます。以下のSQLと同じです。

select * from color
where name in ('red','orange');

例2

今度は、decodeの最後の指定する値に一致する値をセットします。

以下のテーブルがあるとします。

colorテーブル
id name
1 red
2 blue
3 grey

上記テーブルに対してdecodeを使用します。

select * from color
where name = decode(name,'red','red','blue');

2行目は、decodeでname列の値がredのときはred、それ以外のときは、blueで検索します。

結果は、以下のとおりです。

colorテーブル
id name
1 red
2 blue

nameのredとblueが一致した行が表示されます。以下のSQLと同じです。

select * from color
where name in ('red','blue');

関連の記事

Oracle PL/SQLのif文のサンプル

△上に戻る