IN과 EXISTS모두 WHERE절에서 조건식으로 사용한다.
# IN : 조건절에 명시한 값이 포함된 건을 반환

# EXISTS : IN과 유사하지만, 후행 조건절에 서브쿼리가 오고, 서브쿼리 내에서 JOIN이 포함되어있어야 한다.
SELECT DEPARTMENT_ID, DEPARTMENT_NAME
FROM DEPARTMENTS A
WHERE EXISTS (SELECT *
FROM EMPLOYEES B
WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID
AND B.SALARY > 10000)
ORDER BY A.DEPARTMENT_ID ASC;

=> 서브쿼리를 확인하고, 그 결과가 존재하면(TRUE라면) 메인쿼리 실행
즉 EXISTS는 중복여부 등은 고려하지 않는다.
★ EXISTS는 조건을 만족하는 데이터가 존재하는지 확인하고 싶을 때 사용 ★
두 테이블에서 결합된 데이터를 실제로 SELECT해야 할 때는 INNER JOIN을 사용해야한다.
반응형
'SQL' 카테고리의 다른 글
| [ORACLE] 다중 INSERT (0) | 2025.07.16 |
|---|---|
| [ORACLE] 숫자함수 (0) | 2025.07.16 |
| [ORACLE] 오라클에서의 NULL (1) | 2025.07.16 |
| [SQL] CASE WHEN 표현 (0) | 2025.07.16 |
| [ORACLE] Pseudo-column 의사컬럼 (0) | 2025.07.16 |