oracleのdecode関数の使い方は何ですか?

Oracleでは、DECODE関数は指定された条件に基づいて式をチェックし、結果を返すために使用されます。基本的な構文は以下の通りです:

DECODE関数を使用して、exprに対してsearch1、result1、search2、result2…などを指定し、default_resultが入力された場合の結果を取得します。

その中、

  1. exprは比較する式である。
  2. search1やsearch2などはexprと比較する値です。
  3. result1やresult2などは、該当する検索値と一致する場合に返される結果です。
  4. デフォルト結果は選択肢であり、exprがいずれのsearch値とも一致しない場合に返されるデフォルトの結果を示します。

DECODE関数の動作方法は次のとおりです:

  1. exprとsearch1を比較して、一致する場合はresult1を返します。
  2. もし等しくない場合は、exprとsearch2を引き続き比較し、等しい場合はresult2を返します。
  3. search値が一致しない場合、かつdefault_resultを提供した場合は、default_resultを返す。
  4. もし検索値に一致するものがなく、かつデフォルト結果が提供されていない場合は、NULLを返します。

DECODE関数はさまざまな場面で使用できます。例えば、異なる条件に応じて異なる結果を返したり、ある列の値を他の値にマッピングすることができます。以下はDECODE関数を使用した例です:

  1. 従業員の性別をテキストで表す(男性:1、女性:2):
    SELECT DECODE(gender, 1, ‘男性’, 2, ‘女性’, ‘未知’) AS gender_desc
    FROM employees;
  2. 社員の給料レンジに応じて、異なるボーナス割合を計算します:
    SELECT CASE salary
    WHEN 1000 THEN 0.05
    WHEN 2000 THEN 0.1
    ELSE 0.02
    END AS bonus_percentage
    FROM employees;
  3. 顧客テーブルからstatus列の値を他の値にマッピングする。
    SELECT DECODE(status, ‘A’, ‘已激活’, ‘I’, ‘已禁用’, ‘未知’) AS status_desc
    FROM customers;

要简单地说,DECODE函数在Oracle中检查一个表达式并返回结果,可以应用于多种情况。

bannerAds