Функция NULLIF производит при выборке замену заданного значения на NULL. Синтаксис использования имеет следующий вид:
NULLIF (<выражение1>, <выражение2>), где <выражение1> - столбец или вычисляемое выражение;
<выражение2> - вычисляемое выражение (может включать константы, имена столбцов, функции, а также арифметические операции и операцию конкатенации), со значением которого сравнивается значение <выражение1>.
Функция NULLIF возвращает NULL, если значение <выражение1> совпадает со значением <выражение2>, и значение <выражение1> в противном случае.
Использование функции NULLIFаналогично использованию следующей конструкции операции CASE:
CASEWHEN <выражение1> = <выражение2> THEN NULL ELSE <выражение1>
END.
Пусть, например, требуется вывести номера лицевых счетов, ФИО абонентов и их номера телефонов, учитывая, что номер телефона '556893' уже не существует, а новый номер неизвестен. Запрос будет выглядеть следующим образом:
SELECT AccountCD, Fio, NULLIF (Phone,'556893')
FROM Abonent;. Результат выполнения запроса представлен на рис. 3.44.
|
ACCOUNTCD |
FIO |
CASE |
|
005488 |
АКСЕНОВ С.А. |
<null> |
|
115705 |
МИЩЕНКО Е.В. |
769975 |
|
015527 |
КОНЮХОВ В.С. |
761699 |
|
443690 |
ТУЛУПОВА М.И. |
214833 |
|
136159 |
СВИРИНА З.А. |
350003 |
|
443069 |
СТАРОДУБЦЕВ Е.В. |
683014 |
|
136160 |
ШМАКОВ С.В. |
982222 |
|
126112 |
МАРКОВА В.П. |
683301 |
|
136169 |
ДЕНИСОВА Е.К. |
680305 |
|
080613 |
ЛУКАШИНА Р.М. |
254417 |
|
080047 |
ШУБИНА Т.П. |
257842 |
|
080270 |
ТИМОШКИНА Н.Г. |
321002 |
Рис. 3.44. Результат выполнения запроса при использовании NULLIF
предыдущаяследующая