OFFSET 절 및 FETCH FIRST 절
OFFSET
절 및 FETCH FIRST
절은 결과 세트의 특정 시작점에서 시작되는 지정된 행의 범위를 반환하는 데 사용됩니다. 큰 결과 세트에서 검색된 행을 제한하는 기능을 사용하면 데이터를 "페이징"하여 효율성을 향상시킬 수 있습니다.
OFFSET
절은 데이터를 반환하기 전에 건너뛸 행 수를 표시합니다. OFFSET
절이 SELECT
문에서 사용되지 않으면 시작 행은 0입니다. FETCH FIRST
절은 반환할 행 수를 OFFSET
절에서 표시한 시작점에서부터 1 이상의 부호 없는 정수나 백분율로 지정합니다. OFFSET
및 FETCH FIRST
모두 SELECT
문에서 사용되는 경우, OFFSET
절이 먼저 와야 합니다.
OFFSET
및 FETCH FIRST
절은 하위 쿼리에서 지원되지 않습니다.
OFFSET 절 포맷
OFFSET
포맷은 다음과 같습니다.
OFFSET [ n {ROWS | ROW} ]
n
은 부호 없는 정수입니다. n
이 결과 세트에서 반환된 행 수보다 큰 경우, 반환되는 것이 없어 오류 메시지가 나타나지 않습니다.
ROWS
는 ROW
와 동일합니다.
FETCH FIRST 절 포맷
FETCH FIRST
포맷은 다음과 같습니다.
FETCH FIRST [ n [ PERCENT ] ] { ROWS | ROW } {ONLY | WITH TIES } ]
n
은 반환될 행 수입니다. n
이 생략된 경우 기본 값은 1입니다.
PERCENT가 뒤에 오지 않으면 n
은 1 이상의 부호 없는 정수입니다. n
다음에 PERCENT
가 오면, 값은 양의 분수 값 또는 부호 없는 정수입니다.
ROWS
는 ROW
와 동일합니다.
WITH TIES
는 ORDER BY
절과 함께 사용되어야 합니다.
WITH TIES
는 피어 행 때문에 FETCH
에서 지정한 개수 값보다 더 많은 행을 반환할 수 있으며, ORDER BY
절을 기반으로 하는 분명하지 않은 이 행도 반환됩니다.
last_name
, first_name
순서로 정렬된 결과 세트의 26번째 행에서 정보를 반환합니다.
SELECT emp_id, last_name, first_name FROM emp ORDER BY last_name, first_name OFFSET 25 ROWS
반환할 행을 최대 10개까지 지정합니다.
SELECT emp_id, last_name, first_name FROM emp ORDER BY last_name, first_name OFFSET 25 ROWS FETCH FIRST 10 ROWS ONLY
10개의 행 및 피어 행(ORDER BY
절을 기반으로 한 분명하지 않은 행)을 반환합니다.
SELECT emp_id, last_name, first_name FROM emp ORDER BY last_name, first_name OFFSET 25 ROWS FETCH FIRST 10 ROWS WITH TIES