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 より前のバージョンの場合は、別のアプローチが必要です。 1 つの方法は、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>
以上がOFFSET/FETCH と ROW_NUMBER() を使用して SQL Server でカスタム ページネーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。