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

Функция

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

Спецификация
 
<вариант...>::=
<значение по умолчанию>::=
литерал
|{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. Аргументы могут быть заданы , который должен содержать спецификацию типа данных параметра.

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