Takeaway

서브쿼리 핵심 정리

서브쿼리는 동적 조건을 만들지만, 반환 모양과 외부 참조 여부를 놓치면 오류나 성능 문제가 생깁니다.

형태
위치
성능/NULL
1

반환 모양

scalar, column, row, table 중 어디에 해당하는지 먼저 봅니다.

2

사용 위치

SELECT, FROM, WHERE, HAVING에서 요구하는 형태가 다릅니다.

3

상관 여부

외부 행 값을 참조하면 반복 평가 비용을 의식해야 합니다.

4

NULL 안전성

NOT IN, ALL, ANY는 NULL과 빈 집합에서 특히 조심합니다.

상황
좋은 선택
확인할 점
단일 값 비교
스칼라 서브쿼리
1행 1열 보장
존재 여부
EXISTS / NOT EXISTS
상관 조건과 인덱스
복잡한 단계화
인라인 뷰 / CTE
가독성과 실행 계획