SQL Server 사용자 정의 페이징: OFFSET/FETCH 및 ROW_NUMBER() 메서드
SQL 페이지 매김은 데이터 세트에서 제한된 수의 레코드를 검색하는 데 사용되며 일반적으로 사용자 인터페이스의 페이지에 결과를 표시하는 데 사용됩니다. 이 문서의 목표는 게시물과 최신 항목을 검색하는 쿼리에 대한 페이징 기능을 구현하는 것입니다.
SQL Server 2012 이상 버전에서는 OFFSET
및 FETCH NEXT
키워드를 사용하여 페이징을 구현할 수 있습니다. 다음 쿼리는 페이지 매김에 이러한 키워드를 사용하는 방법을 보여줍니다.
<code class="language-sql">SELECT PostId FROM ( SELECT PostId, MAX(Datemade) AS LastDate FROM dbForumEntry GROUP BY PostId ) AS SubQueryAlias ORDER BY LastDate DESC OFFSET 10 ROWS -- 跳过10行 FETCH NEXT 10 ROWS ONLY; -- 获取接下来的10行</code>
SQL Server 2012 이전 버전의 경우에는 다른 접근 방식이 필요합니다. 한 가지 방법은 ROW_NUMBER()
함수를 사용하여 레코드에 행 번호를 할당한 다음 WHERE
절을 사용하여 원하는 행을 필터링하는 것입니다.
<code class="language-sql">DECLARE @Start INT, @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 AND @End; -- 获取第10到20行</code>
이 접근 방식은 이전 버전의 SQL Server에 대한 페이징을 구현하는 방법을 제공하므로 표시되는 레코드 수를 제어하고 대규모 데이터 세트를 쉽게 탐색할 수 있습니다.
위 내용은 OFFSET/FETCH 및 ROW_NUMBER()를 사용하여 SQL Server에서 사용자 지정 페이지 매김을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!