DECODE(式,値1,戻り値1,・・・値n,戻り値n,[戻り値z])
式の結果と値が一致する場合はその場所の戻り値を返す。どれも式と合わない場合は戻り値z(省略時はNULL)になる。CASE式でだいたい書き換えられる。
CASE 式 と DECODE 関数の違い
検索 CASE 式 のように評価する式が個々に設定できないため、範囲指定などの条件指定が基本的に行えない。
CASE 式は NULL との評価はすべて NULL になる。
一方 DECODE は NULL = NULL は True となる。
詳しくはSHIFT the Oracle
DECODE(JOB,'CLERK','CTU',
'SALESMAN','NSA',
'OTHERS')
JOBがCLERKならCTUを、SALESMANならNSAを、それ以外ならOTHERSを返す。
