OracleではDECODE関数を使って、値を変換する事ができます。使い方はCASE命令と似ています。CASE命令で書き換える事も可能です。
文法:
DECODE( x, target, new_value [ , target2, new_value2…..] [ , default] )
xで指定した値を評価し、それがtargetと等しい場合はnew_valueを返す。target2に等しい場合はnew_value2を返す。xの値がどの値とも一致しない場合はdefaultを返す。
使用例:result列が2の場合は’不合格’、1の場合は’合格’を返す。それ以外の場合は’集計中’を返す。
SELECT user, result, DECODE(result, 2, ‘不合格’, 1, ‘合格’, ‘集計中’) FROM tbExamTable;
user result DECODE(result, 2, ‘不合格’, 1, ‘合格’, ‘集計中’)
————————————————————————————-
Tom 1 合格
Jenny 0 集計中
Chris 2 不合格
Andrew 1 合格