Операторы сравнения в SQL: IN, NOT IN
Операторы сравнения IN
и NOT IN
в SQL используются для проверки наличия или отсутствия значения в определённом наборе значений или в результате подзапроса.
IN
Оператор IN
проверяет, содержится ли значение в указанном списке значений или в результате подзапроса. Если значение присутствует в списке, то условие считается истинным.
Примеры:
Проверка в списке значений:
Этот запрос вернёт всех сотрудников, которые работают в отделах с идентификаторами 1, 2 или 3.
Использование с подзапросом:
Этот запрос вернёт всех сотрудников, которые работают в отделах, расположенных в местоположении с идентификатором 100.
NOT IN
Оператор NOT IN
проверяет, отсутствует ли значение в указанном списке значений или в результате подзапроса. Если значение не содержится в списке, то условие считается истинным.
Примеры:
Проверка в списке значений:
Этот запрос вернёт всех сотрудников, которые не работают в отделах с идентификаторами 1, 2 или 3.
Использование с подзапросом:
Этот запрос вернёт всех сотрудников, которые не работают в отделах, расположенных в местоположении с идентификатором 100.
Важные моменты:
Оба оператора используются для работы с множествами данных и позволяют сравнивать значение с несколькими возможными вариантами.
NULL
в списке значений может повлиять на результат работы оператораNOT IN
. Если в списке естьNULL
, запрос сNOT IN
вернёт пустой результат, потому чтоNULL
делает результат неопределённым.
Пример проблемы с NULL
:
NULL
:Этот запрос не вернёт никаких строк, так как наличие NULL
в списке делает результат неопределённым.
Чтобы избежать этой проблемы, следует явно исключить NULL
значения из подзапроса:
Используя IN
и NOT IN
, можно эффективно фильтровать данные, основываясь на множестве возможных значений.
Last updated