Oracleデータベース
SELECT DECODE(col1, 1,'A',
2,'B',
…
78,'BZ',
NULL,'UNKNOWN',
'OTHER') FROM t1;
※col1はINTEGER型とします。
FUJITSU Enterprise Postgres
SELECT CASE
WHEN col1 = 1 THEN 'A'
WHEN col1 = 2 THEN 'B'
...
WHEN col1 = 78 THEN 'BZ'
WHEN col1 IS NULL THEN 'UNKNOWN'
ELSE 'OTHER'
END
FROM t1;
※col1はINTEGER型とします。
最大127項目(引数合計が255以内まで)の検索値を指定できます。
最大49項目(引数合計が100以内まで)の検索値までしか指定できません。
以下の手順でCASE式に移行してください。
DECODEの変換対象値式(例の第1引数のcol1)と探索値(例の第2引数の1)を、CASE式の探索条件に指定します。DECODEの結果値(例の第3引数の'A')を、CASE式のTHENに指定します(例のWHEN col1 = 1 THEN 'A')。なお、探索値がNULL値の場合は、CASE式の探索条件を'IS NULL'で指定します。
DECODEの省略値(例の最後の引数の'OTHER')が指定されている場合は、CASE式のELSEに省略値を指定します(例のELSE 'OTHER')。