OracleのDECODE関数の使用方法

オラクルのDECODE関数は条件式の評価結果によって異なる値を返すために使用されます。その基本的な構文は次のとおりです。

DECODE(expr 検索条件1 結果1[, 検索条件2 結果2, …, デフォルト])

条件式を評価する式expr、照合する値search1、search2など、照合成功時の戻り値result1、result2などをパラメータとしてとり、オプションのデフォルトの戻り値としてdefaultをとります。

DECODE 関数は、search1、search2 などを順次照合し、expr の値が一致した search の値を返します。一致する search がなければ、default の値を返します(default が指定されなければヌルを返します)。

DECODE関数 は 様々な ケース で 利用 可能 です。

  1. ある列の値を別の結果にマッピングする:

SELECT name, CASE WHEN type=’A’ THEN ‘Apple’ WHEN type=’B’ THEN ‘Banana’ WHEN type=’C’ THEN ‘Cherry’ ELSE ‘Unknown’ END AS fruit

フルーツから

この例では、type列のさまざまな値に基づいて、対応するフルーツ名にマッピングします。typeの値が’A’、’B’、または’C’ではない場合は、’不明’を返します。

  1. 条件によって異なる結果を返す

SELECT name, DECODE(score, 90, ‘A’, 80, ‘B’, 70, ‘C’, ‘D’) AS grade

生徒たちから

この例では、score列のスコアに応じて学年の成績を判定します。スコアが90の場合は「A」、スコアが80の場合は「B」を返します。その他のスコアの場合は「D」を返します。

複雑なCASE式をシンプルにするDECODE関数は、問い合わせの可読性と効率を高めます。ただし、DECODE関数はOracle固有の関数であり、他のデータベースシステムでは対応する関数がない可能性があることに注意してください。

bannerAds