SQL 2005에서는 페이징 방법을 새롭게 적용 있습니다.

또한 쿼리 구문을 복잡하게 사용 하시던 분들은 SQL 2005에서 개발 한다면

아래와 같이 쉽게 사용 하시기 바랍니다.

 

 

DECLARE @CURRPAGE  INT

DECLARE @MAXPAGE   INT

 

SET @CURRPAGE = [ 페이지 주소]

SET @MAXPAGE  = [페이지당 출력 ]

 

 

-- 1. WITH 구문을이용해서하는방법

WITH TEMP_TABLE AS

(

        -- ====================================================================

        SELECT

                       ROW_NUMBER() OVER(ORDER BY [소트할 내용]) AS RowNum,

                       *

               FROM

                       [테이블 ]

        -- ====================================================================

)

SELECT * FROM TEMP_TABLE WHERE ROWNUM BETWEEN ( ( @CURRPAGE - 1 ) * ( @MAXPAGE + 1 ) ) AND ( @CURRPAGE * @MAXPAGE )

 

-- 2. FROM를이용해서하는방법

SELECT

        *

        FROM

               (

                       -- ====================================================================

                       SELECT

                                      ROW_NUMBER() OVER(ORDER BY [소트할 내용]) as RowNum,

                                      *

                              FROM

                                      [테이블 ]

                       -- ====================================================================

               ) AS A

WHERE ROWNUM BETWEEN ( ( @CURRPAGE - 1 ) * @MAXPAGE ) + AND ( @CURRPAGE * @MAXPAGE )

출처 : http://msmvp.egloos.com/3453597

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

[SQL] Split 구현하기  (8) 2010.01.27
[SQL] 여러 로우를 하나의 로우(필드, 컬럼)으로 합치기  (0) 2010.01.25
[SQL] 다중 조건 처리하기  (4) 2009.12.28

AND