Вопросы к Поиску с Алисой
Отличие операторов EXISTS и NOT IN при работе с базой данных Oracle заключается в том, как они обрабатывают нулевые значения. www.techrepublic.com www.oracletutorial.com
EXISTS считает строки и игнорирует значения в подзапросе, даже если они равны нулю. www.techrepublic.com Если подзапрос возвращает хотя бы одну строку, то оператор оценивает результат в true. docs.oracle.com
NOT IN сравнивает каждое значение с другими и возвращает нулевое значение, если какое-то из них равно нулю или false. www.techrepublic.com www.oracletutorial.com Если в наборе результатов подзапроса есть нулевые значения, то выражение также вернёт нулевое значение. www.oracletutorial.com
Таким образом, оператор NOT IN не учитывает нулевые значения, а оператор NOT EXISTS проверяет наличие строк в подзапросе. www.oracletutorial.com