Инструменты пользователя

Инструменты сайта


Боковая панель

Введение

Статьи и часто задаваемые вопросы

Установка и настройка

Обработка ошибок

Полезные запросы SQL

Тематические группы

decode



DECODE

Версии сервера

0.9 1.0 1.5.3 1.5.4 1.5.5 2.0 2.0.3 2.0.4 2.1 2.5 3.0
- - - - - - - - Да Да ?

Функция DECODE реализует краткую запись «простого» оператора CASE

Формат

DECODE ( <test-expr>,
         <expr>, result
         [, <expr>, result ...]
         [, defaultresult] )

Эквивалентная конструкция CASE:

CASE <test-expr>
   WHEN <expr> THEN result
   [WHEN <expr> THEN result ...]
   [ELSE defaultresult]
END

Пример

Через DECODE

SELECT
    o.ID,
    o.Description,
    DECODE(o.STATUS, 
             1, 'confirmed',
             2, 'in production',
             3, 'ready',
             4, 'shipped',
                'unknown status ''' || o.STATUS || ''''
          )     
  FROM
    Orders o

Через CASE

SELECT
    o.ID,
    o.Description,
    CASE o.STATUS
      WHEN 1 THEN 'confirmed'
      WHEN 2 THEN 'in production'
      WHEN 3 THEN 'ready'
      WHEN 4 THEN 'shipped'
      ELSE 'unknown status ''' || o.STATUS || ''''
    END
  FROM
    Orders o

См. также

Источник

Обсуждение

Артемий Соболев, 2012/02/27 06:07

Вообще-то на оффсайте заявлено, что эта функция добавлена начиная с версии 2.1

вот: http://www.firebirdsql.org/refdocs/langrefupd21-intfunc-decode.html

Только авторизованные участники могут оставлять комментарии.
decode.txt · Последние изменения: 2012/03/14 15:08 (внешнее изменение)