본문 바로가기

Data Literacy/SQL

Chapter 1. 데이터 조회, 필터링(7) - FETCH(w/OFFSET)

PostgreSQL

 

 

 

이번 아티클에서는 FETCH 구문에 대해서도 살펴보겠습니다. 사실, LIMIT와 FETCH는 결과적으로 같은 동작을 취하게 됩니다. 즉, [특정 시작 점부터 제한된 수의 행을 출력한다]는 동작에는 변함이 없는 것이죠. 이는 DB나 프로그램의 종류에 따라서 각각의 명령어가 사용되는 경우가 있기 때문에 따로 존재합니다. 일단 LIMIT와 근본적인 사용 방법에는 차이가 없으니, 빠르게 알아보고 넘어가겠습니다. 

 

 


 

 

일단 FETCH는 LIMIT처럼 출력하는 행의 수를 지정하는 명령어입니다. FETCH FIRST [N] ROW ONLY라는, 꽤나 직관적인 명령어를 사용하면 됩니다. N을 삭제하고 FETCH FIRST ROW ONLY를 실행하게 되면, 딱 하나의 행만을 출력하게 됩니다. 

 

  select * 
    from tableName 
   fetch first [N] row only

 

예시를 아래와 같이 실행해 보겠습니다. 

 

  select * 
    from film f  
order by film_id
   fetch first 5 row only

 

 

 

여기에 OFFSET을 동일하게 적용할 수 있습니다. 역시 시작점은 인덱스 넘버를 기준으로 하기 때문에 0부터 시작하게 됩니다. 아래와 같이 OFFSET을 적용해 5개의 행을 출력해 보겠습니다. FILM_ID 6번부터입니다. 

 

  select * 
    from film f  
order by film_id 
   fetch first 5 row only
  offset 5 rows