문제
다음 중 최고 급여를 받는 직원을 구하는 조건으로 옳지 않은 것은?
① SAL >= ANY (SELECT SAL FROM EMP) ② SAL >= ALL (SELECT SAL FROM EMP) ③ SAL = (SELECT MAX(SAL) FROM EMP) ④ SAL IN (SELECT MAX(SAL) FROM EMP)
정답
1번
해설
정답: 1. SAL >= ANY는 전체 급여 중 하나 이상보다 크거나 같으면 TRUE가 되므로 최고 급여자를 찾는 조건으로 부적절하다.
오답 풀이
- 1번: 최소 급여 이상인 대부분의 행이 만족할 수 있으므로 최고 급여 조건이 아니다.
- 2번: 모든 급여보다 크거나 같아야 하므로 최고 급여 조건이다.
- 3번: 최대 급여와 같은 직원을 찾으므로 적절하다.
- 4번: MAX(SAL) 결과와 일치하는 직원을 찾으므로 적절하다.
보충 개념
ANY는 서브쿼리 결과 중 하나라도 만족하면 TRUE이고, ALL은 모든 결과를 만족해야 TRUE이다. 최고값 비교에는 >= ALL 또는 = MAX()를 사용할 수 있다.