Две предыдущие рассмотренные функции соответствовали стандарту 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 предыдущаяследующая