문제
WHERE SAL > ANY (1000, 2000) 조건절의 논리적 의미와 동일한 것은?
① SAL > 1000 OR SAL > 2000 ② SAL > 1000 AND SAL > 2000 ③ SAL = 1000 OR SAL = 2000 ④ 에러 발생
정답
1번
해설
정답: 1. > ANY(목록)은 목록의 값들 중 "어느 하나라도" 만족하면 참이므로 각 비교를 OR로 묶은 것과 같다. 즉 SAL이 목록의 최솟값보다 크면 참이며, SAL > 1000 OR SAL > 2000과 동치다.
오답 풀이
- ①: 정답. > ANY는 OR 결합이며, 실질적으로 SAL > MIN(1000) 과 같다.
- ②: AND 결합은 > ALL의 의미다(모든 값보다 커야 함, 즉 SAL > 2000).
- ③: 등호 OR 결합은 = ANY 즉 IN (1000, 2000)의 의미다.
- ④: 다중행/다중값 비교에 ANY는 정상 문법이라 에러가 아니다.
보충 개념
ANY는 "최솟값보다 크면" 참(OR), > ALL은 "최댓값보다 크면" 참(AND)이다. = ANY는 IN과 같고, != ALL은 NOT IN과 같다는 대응 관계를 함께 기억하면 좋다.