Замена значения

Функция

Замена значения в соответствии с правилом декодирования.

Спецификация
 
< вариант... >::=
< значение по умолчанию >::=
литерал
|{SYSDATE | NOW}
|{LOCALTIME | LOCALTIMESTAMP}
|CURRENT_DATE
|{CURRENT_TIME | CURRENT_TIMESTAMP}
| NULL
| USER
Общие правила
  1. Функция создана для совместимости с СУБД ORACLE. Эквивалентна конструкции СУБД ЛИНТЕР:

    CASE < значимое выражение > WHEN < вариант1 > THEN < значение1 >
    [...WHEN < вариантN > THEN < значениеN >]
    [ELSE < значение по умолчанию >] END
  2. Если < значение по умолчанию > не задано, используется NULL-значение.

  3. Аргументы могут быть заданы < 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;
| Директор     |
| Неизвестно   |
| Маркетинг    |
| Программисты |
| Бухгалтерия  |