Firebird Documentation IndexNULL в СУБД Firebird → Проверка на NULL
Firebird Home Firebird Home Пред.: NULL в операторе ifFirebird Documentation IndexУровень выше: NULL в СУБД FirebirdСлед.: Установка значения поля или переменной в NULL

Проверка на NULL

В свете того, какой беспорядок может навести NULL, вы часто захотите узнать, является ли что-либо NULL прежде, чем вы будете использовать это в выражении. Для некоторых очевидная проверка должна выглядеть так:

if (A = NULL) then...

И в самом деле, есть системы управления базами данных, которые поддерживают такой синтаксис проверки на NULL. Но стандарт SQL не допускает этого, не допускает этого и СУБД Firebird. В версиях до 2.0 такой синтаксис был даже недопустим. С версии 2.0 он разрешается, но сравнение всегда вернет NULL, независимо от состояния и значения A. Поэтому такой тест на NULL является бесполезным - нам нужен явный результат true или false.

Корректный способ проверки на NULL такой:

...is null / ...is not null

Эта проверка всегда вернет true или false - и никакой неразберихи. Примеры:

Можно сказать, что в то время как равенство «=» (когда используется как оператор равенства) может сравнивать значения, «is» проверяет состояние.

Пред.: NULL в операторе ifFirebird Documentation IndexУровень выше: NULL в СУБД FirebirdСлед.: Установка значения поля или переменной в NULL
Firebird Documentation IndexNULL в СУБД Firebird → Проверка на NULL