Предикат null позволяет проверить, являются ли неопределенными значения всех элементов строки-операнда:
null_predicate ::= row_value_constructor IS [ NOT ] NULL
Пусть X обозначает строку-операнд. Если значения всех элементов X являются неопределенными, то значением условия X IS NULL является true; иначе - false. Если ни у одного элемента X значение не является неопределенным, то значением условия X IS NOT NULL является true; иначе - false.
Замечание: условие X IS NOT NULL имеет то же значение, что условие NOT X IS NULL для любого X в том и только в том случае, когда степень X равна 1. Полная семантика предиката null приведена в таблице 14.1.
X IS X NULL |
IS NOT NULL |
NOT X IS NULL |
NOT X IS NOT NULL | |
Степень 1: значение NULL |
true |
false |
false |
true |
Степень 1: значение отлично от NULL |
false |
true |
true |
false |
Степень > 1: у всех элементов значение NULL |
true |
false |
false |
true |
Степень > 1: у некоторых(не у всех) элементов значение NULL |
false |
false |
true |
true |
Степень > 1: ни у одного элемента нет значения NULL |
false |
true |
true |
false |