행의 수를 한정/제한하는 역할로 범위 처리 시에 사용한다.
oracle 12c 부터 제공되는 문법이다.
SELECT *
FROM [테이블명]
--OFFSET [행 시작 위치] ROWS
FETCH FIRST [행의 수] ROW ONLY --지정한 숫자가 없다면 1건만 가져온다.
OFFSET offset {ROW|ROWS}
FETCH {FIRST | NEXT} [ {rowcount | percent PERCENT} ] {ROW | ROWS} { ONLY | WITH TIES}
OFFSET
을 통해 시작 위치를 지정하고,
FETCH
문을 통해 출력 행의 범위를 지정한다.
ROW
대신 ROWS
를 사용할 수 있다. 동일하게 동작한다.ONLY
는 뒤에 정확한 행 수 또는 비율을 반환한다.FETCH NEXT
나 FETCH FIRST
WITH TIES
는 가져온 마지막 행과 동일한 정렬 키를 가진 추가 행을 반환한다.FETCH
절과 LIMIT
절(PostgreSQL, MSSQL, MySQL)은 동일하다.
Oracle이 아니라면 LIMIT
절을 사용해도 무방하다.
단, 최초/최근 데이터들을 가지고 오려면 미리 ORDER BY
를 통해 정렬을 진행한 후 적용해야 한다.
참조 - https://www.oracletutorial.com/oracle-basics/oracle-fetch/