DECODE関数は、式を各検索値と1つずつ比較します。式が検索値と等しい場合、結果の値が戻されます。一致するものがない場合は、デフォルト値(指定されている場合)が戻されます。それ以外の場合は、NULLが戻されます。
DECODE(Expression, {SearchValue, Result [,...])} [,Default])
DECODEには、次のパラメータがあります。
パラメータ | 説明 |
Expression | 検索値と比較される式。 |
SearchValue | 式が1つ以上の検索値と比較されます。 |
Result | 式が検索値と等しい場合、指定された結果値が戻されます。 |
Default | 一致するものが検出されない場合、デフォルト値が戻されます。Defaultはオプションです。Defaultが指定されず、一致するものが検出されない場合、NULLが戻されます。 |
式がNULLの場合、NULL式はNULL検索値と等しくなります。
次の例では、DECODE関数を呼び出します。LOCATIONS表で、列Country_idが`IT'と等しい場合、`Italy'が戻されます。Country_idが`JP'と等しい場合、`Japan'が戻されます。Country_idが`US'と等しい場合、`United States'が戻されます。Country_idが`IT'、`JP'または`US'と等しくない場合、`Other'が戻されます。
Command> SELECT Location_id,
> DECODE (Country_id, 'IT', 'Italy',
> 'JP', 'Japan',
> 'US', 'United States',
> 'Other')
> FROM LOCATIONS WHERE Location_id < 2000;
LOCATION_ID, EXP
< 1000, Italy >
< 1100, Italy >
< 1200, Japan >
< 1300, Japan >
< 1400, United States >
< 1500, United States >
< 1600, United States >
< 1700, United States >
< 1800, Other >
< 1900, Other >
10 rows found.