[MSSQL] 페이징 쿼리문

728x90
반응형

 


 

MSSQL 2005 이전 버전만 하더라도, 페이징 쿼리문을 꽤 복잡하게 짰던 기억이 있었습니다.

한동안 페이징 쿼리에 대해서 잊고 있다가, 사용할 일이 생겨서 검색하다가 정리해봅니다.

 

2012qjwjsdptj tkdydgksms 2012버전에서 사용하는 ROW OFFSET 방식이 이전버전들에비해 20% 정도 성능향상이 있다고 합니다.

 

 


 

 

쿼리문

DECLARE @in_page_number INT
DECLARE @in_page_count INT

SET @in_page_number = 1
SET @in_page_count = 10



SELECT 
	SeqNo
,	RoomName
,	UserID
,	UserName
,	[Message]
,	RegDate
FROM dbo.UserHistory
WHERE	RoomName = @in_room_name
ORDER BY SeqNo DESC
OFFSET (@in_page_number-1) * @in_page_count ROWS
FETCH NEXT @in_page_count ROWS ONLY

OFFSET 과 FETCH NEXT 구문을 이용하면 손쉽게 페이징 쿼리를 작성할 수 있었습니다. 

 

 

 

 

 

 

 

 

728x90