OracleのDECODE関数徹底解説

Oracleのdecode関数とは、指定された条件を基に、1つ以上の式を評価し、条件にマッチした結果の式を返す、条件式関数です。

文法:

DECODE(expr, 検索1, 結果1, 検索2, 結果2, …, デフォルトの結果)

引数の説明:

  1. 比較したい式。
  2. 検索条件1、検索条件2、…:比較する検索条件
  3. result1, result2, …: 検索式と一致したときに返すべき結果式
  4. default_result:検索式と一致する結果式がない場合に返す既定の結果を表す、省略可能なパラメータ。

使用例:

  1. 簡単に利用

name を選択します。

CASE WHEN age = 18 THEN ‘成年’ ELSE ‘未成年’ END AS age_status

学生から

この例では、生徒の年齢が18の場合は「成年」を、そうでない場合は「未成年」を返します。

  1. 多条件判定:

「name」を対象に選択します。

DECODE(gender, ‘M’, ‘男性’, ‘F’, ‘女性’, ‘その他’) AS gender_status

学生から

この例では、学生の性別が’M’であれば’男性’を返し、’F’であれば’女性’を返し、それ以外は’その他’を返します。

  1. この文を日本語に翻訳してください。

nameを選択します。

CASE
WHEN department = ‘IT’ THEN ‘情報技術’
WHEN department = ‘HR’ THEN ‘人事’
ELSE ‘その他’
END AS department_name

社員より

この例では、社員が所属する部門が「IT」ならば「情報技術」と返し、「HR」ならば「人事」と返し、そうでない場合は「その他」と返す。

まとめ

DECODE 関数は Oracle の便利な条件式関数であり、指定した条件に基づいて 1 つ以上の式を評価し、条件に一致する結果式を返します。これは、クエリで条件付きの評価と結果の変換を行うために使用できます。

bannerAds