집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 OFFSET 및 FETCH 또는 ROW_NUMBER를 사용하여 페이지 매김을 구현하는 방법은 무엇입니까?
각 게시물의 최신 항목을 기준으로 최근에 논의된 포럼 게시물을 검색하는 쿼리를 처리 중입니다. 이 쿼리를 확장하여 페이지 매김을 지원하고, 특히 사용자가 "가장 최근에 활성화된 10~20번째 게시물"과 같은 특정 범위의 게시물을 검색할 수 있도록 하려고 합니다.
SQL Server 2012 이상
SQL Server 2012 이상에서는 OFFSET 및 FETCH 키워드를 사용하여 페이징을 쉽게 구현할 수 있습니다.
<code class="language-sql">SELECT PostId FROM ( SELECT PostId, MAX(Datemade) AS LastDate FROM dbForumEntry GROUP BY PostId ) SubQueryAlias ORDER BY LastDate DESC OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;</code>
이 쿼리는 처음 10개 행(오프셋)을 건너뛰고 다음 10개 행을 가져옵니다.
SQL 서버 2008
SQL Server 2008에서는 다음 기술을 사용할 수 있습니다.
<code class="language-sql">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 BETWEEN @Start + 1 AND @End ORDER BY RowNumber;</code>
이 쿼리는 CTE(공통 테이블 표현식)를 사용하여 각 게시물의 행 번호를 생성합니다. 그런 다음 WHERE 절은 지정된 범위 내의 게시물만 포함하도록 결과를 필터링하고 ORDER BY 절은 게시물이 PostId에 따라 오름차순으로 반환되도록 합니다.
위 내용은 SQL Server에서 OFFSET 및 FETCH 또는 ROW_NUMBER를 사용하여 페이지 매김을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!