Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Оператор IS

Оператор IS определяет, является ли значение пустым (NULL) или нет.


Синтаксис SQL 2003
{WHERE | {AND | OR}} выражение IS [NOT] NULL

Ключевые слова

{WHERE | (AND | OR)} выражение IS NULL

Возвращает булево значение ИСТИНА, если выражение равно NULL, и значение ЛОЖЬ, если выражение не равно NULL. Перед проверяемым выражением может стоять ключевое слово WHERE или ключевые слова AND или OR.

NOT

Обращает утверждение. Инструкция будет возвращать булево значение ИСТИНА, если выражение не равно NULL, и значение ЛОЖЬ, если выражение равно NULL.


Общие правила

Поскольку значение NULL является неопределенным, нельзя с помощью сравнения определить, равно ли данное значение NULL или нет. Например, выражения X=NULL и X NULL неразрешимы, поскольку значение, которому должно быть равно или не равно X, неопределенно.

Вместо этого вы должны использовать оператор IS NULL. Не заключайте слово NULL в кавычки, поскольку в этом случае СУРБД интерпретирует значение как слово «NULL», а не как специальное значение NULL.


Советы и хитрости программирования

Некоторые платформы поддерживают использование операторов сравнения при проверке на NULL. Тем не менее все платформы, о которых мы рассказываем в этой книге, в настоящее время поддерживают ANSI синтаксис IS [NOT] NULL.

Иногда проверка на NULL сделает ваше предложение WHERE лишь немного более сложным. Например, вместо простого предиката для тестирования значения storid.

SELECT
stor_id,
ord_date
FROM sales
WHERE stor_id IN (6630, 7708);

Вы можете использовать следующий предикат, учитывающий возможность того, что stor_id может быть равен NULL.

SELECT
stor_id,
ord_date
FROM sales
WHERE stor_id IN (6630, 7708) OR stor_id IS NULL;

Источник