Отличие операторов EXISTS и NOT IN при работе с базой данных Oracle заключается в том, как они обрабатывают нулевые значения. 12
EXISTS считает строки и игнорирует значения в подзапросе, даже если они равны нулю. 1 Если подзапрос возвращает хотя бы одну строку, то оператор оценивает результат в true. 3
NOT IN сравнивает каждое значение с другими и возвращает нулевое значение, если какое-то из них равно нулю или false. 12 Если в наборе результатов подзапроса есть нулевые значения, то выражение также вернёт нулевое значение. 2
Таким образом, оператор NOT IN не учитывает нулевые значения, а оператор NOT EXISTS проверяет наличие строк в подзапросе. 2