SQL Server のページング処理に利用できる方法は?

SQL Server には、ページング操作を行うためのいくつかの異なる方法があります。

  1. OFFSET FETCH句を使用する: OFFSET FETCH句は、返す行のオフセットと返す行数を指定するために使用されます。例えば、以下のクエリでは11行目から10行のデータが返されます:
SELECT *
FROM table
ORDER BY column
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;
  1. ROW_NUMBER関数を使用:ROW_NUMBER関数は結果セットの各行に一意の番号を割り当て、その番号に基づいてページングできます。例えば、次のクエリは11行目から20行目のデータを取得します。
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (ORDER BY column) AS RowNum
FROM table
) AS SubQuery
WHERE RowNum BETWEEN 11 AND 20;
  1. CTE(共通テーブル式)使用:共通テーブル式は、一時的なテーブルを作成し、その後の問い合わせで参照するために使うことができます。また、ページング処理を行うROW_NUMBER関数などをCTEの中で活用できます。例えば、以下の問合せでは11行目から20行目までを返します。
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (ORDER BY column) AS RowNum
FROM table
)
SELECT *
FROM CTE
WHERE RowNum BETWEEN 11 AND 20;

SQL Server でページングを実行するための一般的な方法はいくつかあります。どの方法を選択するかは、要件とクエリ の複雑さによって異なります。

bannerAds