SQL Server 2012 에서는 매우 쉽습니다.
SELECT col1, col2, ...
FROM ...
WHERE ...
ORDER BY -- this is a MUST there must be ORDER BY statement
-- the paging comes here
OFFSET 10 ROWS -- skip 10 rows
FETCH NEXT 10 ROWS ONLY; -- take 10 rows
ORDER BY를 건너 뛰려면
SELECT col1, col2, ...
...
ORDER BY CURRENT_TIMESTAMP
OFFSET 10 ROWS -- skip 10 rows
FETCH NEXT 10 ROWS ONLY; -- take 10 rows
(차라리 그것을 핵으로 표시하고 싶지만 NHibernate에 의해 사용됩니다. 현명하게 선택된 열을 ORDER BY로 사용하는 것이 선호됩니다)
질문에 대답하기 위해 :
--SQL SERVER 2012
SELECT PostId FROM
( SELECT PostId, MAX (Datemade) as LastDate
from dbForumEntry
group by PostId
) SubQueryAlias
order by LastDate desc
OFFSET 10 ROWS -- skip 10 rows
FETCH NEXT 10 ROWS ONLY; -- take 10 rows
새로운 키워드 offset
와 fetch next
(SQL 표준을 따르는) 소개되었습니다.
하지만 사용하지 않는 것으로 추측 2012 SQL 서버를 오른쪽 ? 이전 버전에서는 약간 (약간) 어렵다. 모든 SQL Server 버전에 대한 비교 및 예는 다음과 같습니다. here
따라서 이것은 SQL Server 2008 에서 작동 할 수 있습니다 .
-- SQL SERVER 2008
DECLARE @Start INT
DECLARE @End INT
SELECT @Start = 10,@End = 20;
;WITH PostCTE AS
( SELECT PostId, MAX (Datemade) as LastDate
,ROW_NUMBER() OVER (ORDER BY PostId) AS RowNumber
from dbForumEntry
group by PostId
)
SELECT PostId, LastDate
FROM PostCTE
WHERE RowNumber > @Start AND RowNumber <= @End
ORDER BY PostId