Функция iif

Две предыдущие рассмотренные функции соответствовали стандарту SQL. СУБД Firebird предоставляет возможность использования также функции IIF, которая является расширением языка и не описана в стандарте SQL. Функция имеет следующий синтаксис:

IIF (<условие_поиска>, <выражение1>, <выражение2>) и эквивалентна следующей конструкции операции CASE: CASE WHEN <условие_поиска> THEN <выражение1>

ELSE<выражение2> END.

Данная конструкция возвращает значение <выражение1>, если <условие_поиска> истинно, и значение <выражение2> в противном случае.

Например, необходимо вывести информацию о типах неисправностей, не детализируя неисправности газовой плиты. Запрос будет выглядеть следующим образом:

SELECT FailureCD,

IIF(FailureNM Like '%плит%',

'Неисправность плиты', FailureNM) AS Failure_type FROM Disrepair;. Результат выполнения запроса представлен на рис. 3.46.

FAILURECD

FAILURE TYPE

1

Засорилась водогрейная колонка

2

Не горит АГВ

3

Течет из водогрейной колонки

4

Неисправна печная горелка

5

Неисправен газовый счетчик

6

Неисправность плиты

7

Неисправность плиты

8

Неисправность плиты

12

Неизвестна

Рис. 3.46. Результат выполнения запроса при использовании IIF предыдущаяследующая