문제
SAL 기준 상위 5건을 조회하는 SQL로 가장 적절한 것은?
① SELECT * FROM EMP WHERE ROWNUM <= 5 ORDER BY SAL DESC ② SELECT * FROM EMP WHERE ROWNUM = 5 ORDER BY SAL DESC ③ SELECT * FROM EMP WHERE ROWNUM <= 5 ④ SELECT * FROM EMP ORDER BY SAL DESC FETCH FIRST 5 ROWS ONLY
정답
4번
해설
정답: 4. SAL 기준으로 정렬한 뒤 FETCH FIRST 5 ROWS ONLY를 사용하면 상위 5건을 조회할 수 있다.
오답 풀이
- 1번: Oracle에서 ROWNUM이 정렬 전에 부여될 수 있어 정확한 상위 5건 보장이 어렵다.
- 2번: ROWNUM = 5 조건은 일반적으로 의도한 결과를 반환하지 못한다.
- 3번: 정렬 기준 없이 5건만 조회한다.
- 4번: 정렬 후 행 제한이 적용되는 명확한 방식이다.
보충 개념 Top-N 쿼리는 정렬 후 제한이 중요하다. Oracle 12c 이상에서는 FETCH FIRST 구문을 사용할 수 있다.