Замена значения
Функция
Замена значения в соответствии с правилом декодирования.
Спецификация
< синтаксис >
::=
< вариант... >
::=
< значение по умолчанию >
::=
литерал
|{SYSDATE | NOW}
|{LOCALTIME | LOCALTIMESTAMP}
|CURRENT_DATE
|{CURRENT_TIME | CURRENT_TIMESTAMP}
| NULL
| USER
|{SYSDATE | NOW}
|{LOCALTIME | LOCALTIMESTAMP}
|CURRENT_DATE
|{CURRENT_TIME | CURRENT_TIMESTAMP}
| NULL
| USER
Общие правила
-
Функция создана для совместимости с СУБД ORACLE. Эквивалентна конструкции СУБД ЛИНТЕР:
CASE < значимое выражение > WHEN < вариант1 > THEN < значение1 > [...WHEN < вариантN > THEN < значениеN >] [ELSE < значение по умолчанию >] END
-
Если
< значение по умолчанию >
не задано, используется NULL-значение. -
Аргументы могут быть заданы
< SQL-параметром >
, который должен содержать спецификацию типа данных параметра.select distinct decode(make, ? (char(20)), ? (char(20)), ? (char(20)), ? (char(20)), 'Прочие') from auto limit 5; FORD Форд MASERATI Мазерати |Мазерати | |Прочие | |Форд |
Примеры
create table tab1(code int); … select * from tab1; | 1 | | NULL | | 2 | | 4 | | 3 |
select decode( code, 1, 'Директор', 2, 'Маркетинг', 3, 'Бухгалтерия', 4, 'Программисты', null, 'Неизвестно') from tab1; | Директор | | Неизвестно | | Маркетинг | | Программисты | | Бухгалтерия |