decode関数は、第一引数で指定した文字列と等しい比較値があればその代替値を返します。どの比較値にもあてはまなければ、最後に指定した代替値(省略可能)に変換する関数です。
特に指定する必要がない場合は最後の代替値は省略できます。
書式を以下に示します
decode(比較対象フィールド,比較値,代替値,比較値,代替値,・・・・・,最後の代替値)
このような書式になりますが、わかりにくいので具体的な例をあげます。
下記SQLを見てください。このdecode関数では、SEND_TYPが1であれば「日本」、2であれば「アメリカ」、3であれば「中国」、1でも2でも3でもない場合は「その他」を返します。
select send_typ,decode(send_typ,'1','日本','2','アメリカ','3','中国','その他')
from typ_tbl;
1にも2にも3にも当てはまらない場合、何も表示したくなければ以下SQLのように省略できます。
select send_typ,decode(send_typ,'1','日本','2','アメリカ','3','中国') as dec
from typ_tbl;
このSQL文を実行すると結果は以下のようになります。
send_typ dec
-------- -------
1 日本
2 アメリカ
3 中国
4