Проверка на NULL
В SQL работа с NULL
требует особого подхода, поскольку NULL
представляет собой неопределенное или отсутствующее значение. Это делает прямое сравнение с NULL
неприменимым. Вот как можно правильно проверять значения на NULL
в SQL:
Проверка на NULL
NULL
Оператор IS NULL
IS NULL
Оператор IS NULL
используется для проверки, является ли значение NULL
.
Этот запрос выбирает всех сотрудников, у которых manager_id
равно NULL
.
Оператор IS NOT NULL
IS NOT NULL
Оператор IS NOT NULL
проверяет, что значение не является NULL
.
Этот запрос выбирает всех сотрудников, у которых manager_id
не равно NULL
.
Использование функций для работы с NULL
NULL
Функция COALESCE
COALESCE
Функция COALESCE
возвращает первый ненулевой аргумент из списка. Это полезно для замены NULL
значений на другие значения по умолчанию.
Этот запрос заменяет NULL
в столбце bonus
на 0.
Функция NULLIF
NULLIF
Функция NULLIF
возвращает NULL
, если два аргумента равны. В противном случае возвращает первый аргумент.
Этот запрос заменяет значение 0
в столбце bonus
на NULL
.
Функция IFNULL
(или ISNULL
в SQL Server)
IFNULL
(или ISNULL
в SQL Server)Функция IFNULL
(или ISNULL
в SQL Server) заменяет NULL
на указанное значение.
Этот запрос заменяет NULL
в столбце bonus
на 0.
Примеры использования NULL
в условиях
NULL
в условияхФильтрация данных с учетом NULL
NULL
Для учета NULL
в фильтрации данных можно комбинировать проверки NULL
с другими условиями.
Этот запрос выбирает все заказы, сделанные в 2024 году, которые либо не отправлены (shipped_date
равно NULL
), либо отправлены после 30 июня 2024 года.
Использование COALESCE
в агрегациях
COALESCE
в агрегацияхИспользование COALESCE
в агрегациях позволяет обрабатывать NULL
значения при вычислении.
Этот запрос вычисляет общую сумму бонусов для каждого отдела, заменяя NULL
значения бонусов на 0.
Объединение строк с учетом NULL
NULL
При объединении строк с учетом NULL
можно использовать функции для замены NULL
значений.
Этот запрос объединяет имя, отчество и фамилию сотрудника в полное имя, заменяя NULL
в middle_name
на пустую строку.
Работа с NULL
в сложных запросах
NULL
в сложных запросахКомбинирование проверок на NULL
с другими условиями
NULL
с другими условиямиЭтот запрос выбирает сотрудников с зарплатой больше 50,000, если зарплата указана, или сотрудников с бонусом больше 1,000, если зарплата не указана.
Использование NULL
в подзапросах
NULL
в подзапросахЭтот запрос выбирает сотрудников, работающих в отделах, где manager_id
равно NULL
.
Заключение
Проверка на NULL
в SQL требует использования специальных операторов и функций. Оператор IS NULL
и IS NOT NULL
позволяют проверять наличие или отсутствие значения, а функции COALESCE
, NULLIF
, IFNULL
помогают обрабатывать NULL
значения в различных контекстах. Эти подходы позволяют корректно обрабатывать отсутствующие данные и строить точные SQL-запросы.
Last updated