SQL
[SQL] 서브쿼리의 결과값이 NULL이 될 경우
bornsoon
2024. 9. 30. 17:49
SELECT last_name
FROM employees
WHERE employee_id <> ALL (SELECT manager_id
FROM employees); --(=not in)
-- 서브쿼리의 결과에 NULL이 포함될 경우 결과가 NULL 또는 FALSE가 될 수 있음
--- not in (null, ...) --> ...!= null and ...--> 결과값 NULL 또는 FALSE (null and false는 false)
SELECT last_name
FROM employees
WHERE employee_id <> ALL (SELECT manager_id
FROM employees
WHERE manager_id IS NOT NULL);
** NULL에는 어떤 작업을 해도 결과값은 늘 NULL이 나오게 되므로 주의해야한다.
NULL 값 때문에 의도하지 않은 오류가 발생하는 경우가 빈번하므로 NULL 값의 특징을 잘 알고 있어야 함.
==> Null 값을 찾고 싶을 때는 '='연산자를 쓰지 않고 IS NULL,
Null 값이 아닌 모든 값을 찾고 싶을 때는 IS NOT NULL을 사용해야 한다.
728x90