Работа с NULL-значениями в SQL


1) Подмена NULL-значений

Для замены NULL-значения на «реальное» значение предусмотрена функция COALESCE:

COALESCE (<выр1>[, <выр2>, …], <результат>)

Если <выр1> не NULL, то оно является результатом функции, иначе проверяется <выр2> и так далее. Если же все <выр1>, <выр2>, … равны NULL то возвращается <результат>.

2) Создание NULL-значений

Для создания NULL-значения предусмотрена функция NULLIF:

NULLIF (<выр>, <значение>)

Если <выр>=<значение>, то функция возвращает NULL, иначе <выр>, которое обычно является именем столбца, например NULLIF(1,1), всегда возвращает NULL.

Пример:
SELECT NULLIF (SNum, 1001), SName FROM SalesPeople

3) Особенности NULL-значений в предикатах сравнения

Если в предикате сравнения одно из сравниваемых значений равно NULL, то и результат сравнения равен NULL.

4) Особенности NULL-значений в предикате BETWEEN

• Если проверяемое значение или обе границы равны NULL, то результат UNKNOWN.
• Если верхняя граница равна NULL, то результат FALSE, если проверяемое значение меньше нижней границы и UNKNOWN иначе.
• Если нижняя граница равна NULL, то результат FALSE, если проверяемое значение больше верхней границы и UNKNOWN иначе.

5) Особенности NULL-значений в предикатах ANY|ALL

• Если сравниваемое значение не дает TRUE ни для одной строки и есть одна или несколько строк с NULL значениями, то ANY возвращает UNKNOWN.
• Если сравниваемое значение не дает FALSE ни для одной строки и есть одна или несколько строк с NULL значениями, то ALL возвращает UNKNOWN.


Комментарии запрещены.




Статистика