SQL Server

페이징처리 - 전체 쿼리결과를 페이지별로 추출

미스터몽키 2015. 2. 6. 19:33

/****************************************
- 페이징처리 ( 전체 쿼리결과를 페이지별로 추출)
****************************************/

쿼리 결과를 페이지별로 나누어 보여줄 때,

예를 들어 전체 레코드가 100행 인데 20행 씩 페이지별로 5페이지에 표시할 때

 

declare @RowCount   int = 20   -- 한페이지에 표시되는 레코드갯수
declare @Page          int = 2       -- 보고자 하는 페이지

 

SELECT Top(@RowCount)  a.*
FROM (
      Select ROW_NUMBER() OVER (ORDER BY 컬럼) [rownum]

             , 컬럼1, 컬럼2, 컬럼3...

      from 테이블명
     ) a
WHERE rownum > (@Page-1)*@RowCount;