본문 바로가기
SQL

[SQL] 페이징하기 : 페이지마다 특정 개수의 글목록 불러오는 쿼리

by 펜네임 2020. 3. 18.

 예제 : 페이지에 글을 10개씩 보여줄 때, 1페이지 

 

1. 페이지를 변경하고 싶으면 첫줄 @PAGE INT = 1 의 1을 원하는 페이지 수로 변경

2. 페이지 당 보여주는 글 개수를 변경하고 싶으면 마지막 줄 ((@PAGE-1)*10)+1 AND (@PAGE*10) 의 10을 원하는 수로 변경

DECLARE @PAGE INT = 1

SELECT *
  FROM
       (SELECT ROW_NUMBER() OVER (ORDER BY WRITE_DATE) AS RNUM,
              A.*
         FROM TABLENAME A
        WHERE BOARD_ID = '0001'
       ) A
 WHERE RNUM BETWEEN ((@PAGE-1)*10)+1 AND (@PAGE*10)

 

 실전 : 게시판용 

순번을 역순으로 보여줘야 할 필요가 있을 때 사용.

	SELECT *
	FROM
		(SELECT ROW_NUMBER() OVER (ORDER BY A.WRITE_DATE DESC) AS HIDE_RNUM,
				ROW_NUMBER() OVER (ORDER BY A.WRITE_DATE) AS SHOW_RNUM,
				POST_ID, 
				SUBJECT, 
				WRITER, 
				CONVERT(VARCHAR(10), A.WRITE_DATE, 120) AS WRITE_DATE 
		 FROM TABLE
		WHERE BOARD_ID = '0001'
		)
	WHERE HIDE_RNUM BETWEEN ((#{page}-1)*10)+1 AND(#{page}*10)  
	ORDER BY SHOW_RNUM DESC

 

댓글