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.

IIF()

Доступно в

DSQL, PSQL

Синтаксис
IIF (<condition>, ResultT, ResultF)
Table 1. Параметры функции IIF
Параметр Описание

condition

Выражение логического типа.

resultT

Возвращаемое значение, если condition является истинным.

resultF

Возвращаемое значение, если condition является ложным.

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

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

Функция IIF имеет три аргумента.Если первый аргумент является истиной, то результатом будет второй параметр, в противном случае результатом будет третий параметр.

Оператор IIF также можно сравнить в тройным оператором “?:” в C-подобных языках.

Note

По сути, функция IIF это короткая запись оператора CASE

CASE WHEN <condition> THEN resultT ELSE resultF END

Примеры IIF

Example 1. Использование функции IIF
SELECT IIF(SEX = 'M', 'Sir', 'Madam') FROM CUSTOMERS
См. также:

CASE.