문제
다음 SQL의 ROW LIMITING 절에 대한 설명 중 옳은 것을 모두 고른 것은?
SQLSELECT * FROM TAB1 ORDER BY NO DESC OFFSET 3 ROWS FETCH FIRST 5 ROWS ONLY;
<보기> 가. NO를 내림차순으로 정렬한 뒤 일부 행을 반환한다. 나. 3번째 ROW만 제외한다. 다. 5개 이상 행이 나올 수 있다.
① 가 ② 나 ③ 가, 다 ④ 가, 나, 다
정답
1번
해설
정답: 1. ORDER BY NO DESC로 정렬한 뒤 OFFSET 3 ROWS로 앞의 3개 행을 건너뛰고 FETCH FIRST 5 ROWS ONLY로 최대 5개 행만 반환한다.
오답 풀이
- 1번: 가만 옳다.
- 2번: OFFSET 3 ROWS는 3번째 ROW 하나만 제외하는 의미가 아니라 앞의 3개 행을 건너뛰는 의미이다.
- 3번: 다는 틀리다. ONLY이므로 5개를 초과하여 반환하지 않는다.
- 4번: 나와 다가 틀리므로 부적절하다.
보충 개념 OFFSET은 건너뛸 행 수를 지정하고 FETCH FIRST n ROWS ONLY는 반환할 최대 행 수를 지정한다. WITH TIES가 아닌 ONLY는 동순위를 추가 포함하지 않는다.