FirebirdSQL logo

DECODE()

Доступно в

DSQL, PSQL

Синтаксис
DECODE(<testexpr>,
  <expr1>, <result1>
  [<expr2>, <result2> …]
  [, <defaultresult>])

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

CASE <testexpr>
  WHEN <expr1> THEN <result1>
  [WHEN <expr2> THEN <result2> …]
  [ELSE <defaultresult>]
END
Table 1. Параметры функции DECODE
Параметр Описание

testexpr

Выражения любого совместимого типа, которое сравнивается с выражениями <expr1>, <expr2> …​ <exprN>

expr1, expr2, …​ exprN

Выражения любого совместимого типа, с которыми сравнивают с выражением <testexpr>.

result1, result2, …​ resultN

Возвращаемые выражения любого типа.

defaultresult

Выражение, возвращаемое если ни одно из условий не было выполнено.

Тип возвращаемого результата

зависит от типов входных аргументов

Данная функция эквивалентна конструкции Простой CASE, в которой заданное выражение сравнивается с другими выражениями до нахождения совпадения.Результатом является значение, указанное после выражения, с которым найдено совпадение.Если совпадений не найдено, то возвращается значение по умолчанию (если оно, конечно, задано — в противном случае возвращается NULL).

Caution

Совпадение эквивалентно оператору ‘=’, т.е.если testexpr имеет значение NULL, то он не соответствует ни одному из expr, даже тем, которые имеют значение NULL.

Примеры DECODE

Example 1. Использование функции DECODE
select name,
  age,
  decode(upper(sex),
         'M', 'Male',
         'F', 'Female',
         'Unknown'),
  religion
from people
См. также:

CASE.