잊지 않겠습니다.

MS SQL Paging query

.NET Framework 2009. 8. 19. 11:52
MS SQL 2005부터 사용가능한 ROW_NUMBER()를 이용한 Paging query


DECLARE @startRow INT
DECLARE @endRow INT
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY LogonName) AS rownum FROM Product) ProductOrdered WHERE rownum > @startRow AND @endRow > rownum
간단히 사용해보면 시작 위치와 마지막 위치만을 지정해주고, Order되는 Column을 설정해주면 된다. 
일단 MS SQL 2005에서부터 사용할 수 있는 함수라서 단점을 가지고 있긴 하지만, 그래도 깔끔하고 무엇보다 속도가 매우 빠르다.
예전에 사용하던 SELECT TOP * FROM ~ 쿼리의 경우에는 뒤로 가면 갈 수록 query가 느려지는 단점을 가지고 있는데, 이를 전혀 신경 쓰지 않아도 되는 좋은 함수이다. 
Posted by Y2K
,