Введение в стандарты языка баз данных SQL

Предикат null


Предикат null описывается синтаксическим правилом:

<null predicate> ::= <column specification> IS [NOT] NULL

Этот предикат всегда принимает значения true или false. При этом значение "x IS NULL" равно true тогда и только тогда, когда значение x неопределено. Значение предиката "x NOT IS NULL" равно значению "NOT x IS NULL".


Как и в SQL/89, предикат null позволяет проверить, не является ли значение неопределенным, но теперь в нем можно использовать операнд-строку:

<null predicate> ::= <row value constructor> IS [ NOT ] NULL

Пояснения:

  • Пусть R обозначает значение строки-операнда.
  • Если все значения, входящие в R, являются неопределенными, значение условия "RISNULL" есть true; иначе - false.
  • Если ни одно из значений R не является неопределенным, то значением условия "RISNOTNULL" является true; иначе - false.
  • Замечание: для всех R условие "RISNOTNULL" имеет то же значение, что условие "NOTRISNULL" в том и только в том случае, когда степень R равна 1. Полная семантика предиката null приведена в следующей таблице:

    УсловиеRISNULLRISNOTNULLNOTRISNULLNOTRISNOTNULL
    Степень 1: nulltruefalsefalsetrue
    Степень 1: notnullfalsetruetruefalse
    Степень > 1: все nulltruefalsefalsetrue
    degree > 1: есть nullfalsefalsetruetrue
    degree > 1: нет nullfalsetruetruefalse



    Содержание раздела