학습용 기출·복원자료 분류 확인SQLD · 2023년 49회 SQL 기본 및 활용 · 19번
다중 열 조건 `(A,B) IN (서브쿼리)`의 결과에 관한 설명으로 옳은 것은?
1
A만 같으면 B와 무관하게 TRUE다.
오답 이유다중 열 IN은 A와 B를 같은 튜플로 비교하므로 A 하나의 일치만으로 충분하지 않다. 따라서 1번 보기 ‘A만 같으면 B와 무관하게 TRUE다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
두 열이 모두 같은 조합만 TRUE가 되며 NULL이 포함된 비교는 UNKNOWN이 될 수 있다.
정답 근거행 값 비교는 같은 위치의 값들을 한 쌍으로 비교한다. SQL의 NULL 비교는 TRUE가 아니라 UNKNOWN이므로 NULL이 포함된 후보가 있다고 해서 자동으로 일치하지 않는다. 따라서 2번 보기 ‘두 열이 모두 같은 조합만 TRUE가 되며 NULL이 포함된 비교는 UNKNOWN이 될 수 있다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
B가 NULL이면 항상 TRUE다.
오답 이유NULL과의 동등 비교는 TRUE가 아니라 UNKNOWN이다. 따라서 3번 보기 ‘B가 NULL이면 항상 TRUE다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
다중 열 IN은 Oracle에서 사용할 수 없다.
오답 이유Oracle은 `(A,B) IN (SELECT A,B ...)` 형태의 다중 열 비교를 지원한다. 따라서 4번 보기 ‘다중 열 IN은 Oracle에서 사용할 수 없다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 2번
핵심 판단은 2번 ‘두 열이 모두 같은 조합만 TRUE가 되며 NULL이 포함된 비교는 UNKNOWN이 될 수 있다.’입니다. 행 값 비교는 같은 위치의 값들을 한 쌍으로 비교한다. SQL의 NULL 비교는 TRUE가 아니라 UNKNOWN이므로 NULL이 포함된 후보가 있다고 해서 자동으로 일치하지 않는다.