[Oracle] FETCH

sunset.kwon·2023년 2월 22일
0

DBMS

목록 보기
5/7

FETCH절

행의 수를 한정/제한하는 역할로 범위 처리 시에 사용한다.

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 NEXTFETCH FIRST
  • WITH TIES는 가져온 마지막 행과 동일한 정렬 키를 가진 추가 행을 반환한다.

FETCH절과 LIMIT절의 차이?

FETCH절과 LIMIT절(PostgreSQL, MSSQL, MySQL)은 동일하다.
Oracle이 아니라면 LIMIT절을 사용해도 무방하다.
단, 최초/최근 데이터들을 가지고 오려면 미리 ORDER BY를 통해 정렬을 진행한 후 적용해야 한다.

참조 - https://www.oracletutorial.com/oracle-basics/oracle-fetch/

profile
더디지만, 자라나는 중입니다.

0개의 댓글