본문 바로가기
MS SQL

MS SQL_페이징처리1/OFFSET FETCH 사용법

by 디디찐 2022. 7. 31.
반응형

1. OFFSET FETCH 사용법

SELECT *
FROM [테이블명]
ORDER BY [정렬할 컬럼명] DESC
OFFSET [페이지 시작점] ROWS
FETCH NEXT [페이징 사이즈] ROWS ONLY

페이지 시작점이 만약 1 이다 하면 => 1을 건너뛰고 가져오겠다 (2부터 가져옴),

                                                             가져오고자 하는 행에서 - 1 을 하면 되겠죠!

페이징 사이즈가 만약 5 이다 하면 => 5개씩 가져오겠다.

2. OFFSET FETCH 사용예제

SELECT * FROM TEST_DB ORDER BY ID ASC

 

 

데이터를 행 1에서부터 5개 행 출력

SELECT * 
  FROM TEST_DB
 ORDER BY ID ASC
OFFSET 0 ROWS
 FETCH NEXT 5 ROWS ONLY

만약 행 6에서 부터 3개 행을 출력하겠다 하면

SELECT * 
  FROM TEST_DB
 ORDER BY ID ASC
OFFSET 5 ROWS
 FETCH NEXT 2 ROWS ONLY

3. OFFSET FETCH 프로시저 만들기

CREATE PROCEDURE [dbo].[SP_PAGING1]
 @PAGE_NO INT         -- 페이지 번호
,@PAGE_SIZE INT		  -- 페이지 사이즈
AS
BEGIN
SET NOCOUNT ON
    SELECT *
      FROM TEST_DB
     ORDER BY ID ASC
    OFFSET (@PAGE_NO-1) * @PAGE_SIZE ROWS  -- 이전 페이지 행 이후 데이터를 가져오기 위해						
     FETCH NEXT @PAGE_SIZE ROW ONLY

SET NOCOUNT OFF
END

두번째 페이지 5개 행 출력하기

EXEC [SP_PAGING3] @PAGE_NO = 2, @PAGE_SIZE = 5
반응형

'MS SQL' 카테고리의 다른 글

MS SQL_PARTION사용법  (0) 2022.08.02
MS SQL_사용자 정의 함수 사용법  (0) 2022.08.02
MS SQL_프로시저 사용법  (0) 2022.08.01
MS SQL_페이징처리3/TOP()사용법  (0) 2022.07.31
MS SQL_페이징처리2/ROW_NUMBER 사용법  (0) 2022.07.31