> 데이터 베이스 > MySQL 튜토리얼 > OFFSET/FETCH 및 ROW_NUMBER()를 사용하여 SQL Server에서 사용자 지정 페이지 매김을 구현하는 방법은 무엇입니까?

OFFSET/FETCH 및 ROW_NUMBER()를 사용하여 SQL Server에서 사용자 지정 페이지 매김을 구현하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-10 21:07:42
원래의
527명이 탐색했습니다.

How to Implement Custom Pagination in SQL Server Using OFFSET/FETCH and ROW_NUMBER()?

SQL Server 사용자 정의 페이징: OFFSET/FETCH 및 ROW_NUMBER() 메서드

SQL 페이지 매김은 데이터 세트에서 제한된 수의 레코드를 검색하는 데 사용되며 일반적으로 사용자 인터페이스의 페이지에 결과를 표시하는 데 사용됩니다. 이 문서의 목표는 게시물과 최신 항목을 검색하는 쿼리에 대한 페이징 기능을 구현하는 것입니다.

SQL Server 2012 이상 버전에서는 OFFSETFETCH 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿