DECODE関数は、式を各検索値と1つずつ比較します。式が検索値と等しい場合、結果の値が戻されます。一致するものがない場合は、デフォルト値(指定されている場合)が戻されます。それ以外の場合は、NULLが戻されます。
SQL構文
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.