【Oracle】条件に合致する場合に別の値を返すDECODE関数の使い方

商品の価格に応じて特定のランクを割り当てる必要がある場面は多々あります。この記事では、データベースやスプレッドシートでこのような場面に遭遇した際に便利なDECODE関数の使い方について解説します。

DECODE関数とは

DECODE関数は、特定の条件に基づいて値を変換するための強力な関数です。条件に合致する場合に別の値を返すことができ、データの加工や置換に役立ちます。

SQLクエリの例

例えば、次のような状況を考えてみましょう。ある列には商品の価格が格納されており、その価格に応じて商品のランクを決定したいとします。

商品名    価格
A        100
B        200
C        300
D        400

この場合、DECODE関数を使用して価格に応じて商品のランクを決定できます。具体的な使い方は次の通りです。

SELECT 商品名,
       DECODE(価格,
              100, 'ランクA',
              200, 'ランクB',
              300, 'ランクC',
              'その他') AS ランク
FROM 商品テーブル;

上記のSQLクエリでは、DECODE関数は価格の値に応じて異なるランクを返します。例えば、価格が100の場合は’ランクA’が返され、価格が200の場合は’ランクB’が返されます。価格が100、200、300のいずれでもない場合は’その他’が返されます。

まとめ

DECODE関数は、条件に基づいて値を変換する際に非常に便利なツールです。商品ランクの決定など、さまざまな場面で活用できることを覚えておきましょう。