예제 : 페이지에 글을 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
'SQL' 카테고리의 다른 글
[MSSQL] 검색 조건에 LIKE와 컬럼명을 이용하는 쿼리문 (0) | 2020.04.17 |
---|---|
[SQLGate 오류] CREATE DATABASE가 실패했습니다. 나열된 일부 파일 이름을 만들 수 없습니다. (0) | 2020.03.23 |
[SQL] 데이터에 넘버링하기 (0) | 2020.03.12 |
[DB Query] SELECT 결과에 따라 조건문 바꾸기 (0) | 2020.03.03 |
[SQL] decode() 함수 (0) | 2020.02.14 |
댓글