oracleのdecode関数の使い方は何ですか?
Oracleでは、DECODE関数は指定された条件に基づいて式をチェックし、結果を返すために使用されます。基本的な構文は以下の通りです:
DECODE関数を使用して、exprに対してsearch1、result1、search2、result2…などを指定し、default_resultが入力された場合の結果を取得します。
その中、
- exprは比較する式である。
- search1やsearch2などはexprと比較する値です。
- result1やresult2などは、該当する検索値と一致する場合に返される結果です。
- デフォルト結果は選択肢であり、exprがいずれのsearch値とも一致しない場合に返されるデフォルトの結果を示します。
DECODE関数の動作方法は次のとおりです:
- exprとsearch1を比較して、一致する場合はresult1を返します。
- もし等しくない場合は、exprとsearch2を引き続き比較し、等しい場合はresult2を返します。
- search値が一致しない場合、かつdefault_resultを提供した場合は、default_resultを返す。
- もし検索値に一致するものがなく、かつデフォルト結果が提供されていない場合は、NULLを返します。
DECODE関数はさまざまな場面で使用できます。例えば、異なる条件に応じて異なる結果を返したり、ある列の値を他の値にマッピングすることができます。以下はDECODE関数を使用した例です:
- 従業員の性別をテキストで表す(男性:1、女性:2):
SELECT DECODE(gender, 1, ‘男性’, 2, ‘女性’, ‘未知’) AS gender_desc
FROM employees; - 社員の給料レンジに応じて、異なるボーナス割合を計算します:
SELECT CASE salary
WHEN 1000 THEN 0.05
WHEN 2000 THEN 0.1
ELSE 0.02
END AS bonus_percentage
FROM employees; - 顧客テーブルからstatus列の値を他の値にマッピングする。
SELECT DECODE(status, ‘A’, ‘已激活’, ‘I’, ‘已禁用’, ‘未知’) AS status_desc
FROM customers;
要简单地说,DECODE函数在Oracle中检查一个表达式并返回结果,可以应用于多种情况。