OFFSET


SQL Server 2012からはオフセットが使える。
実行プラン的にも構文的にも良さそう。
SQL Server 2008以前には戻りたくないな。

page

-- SQL SERVER 2008 R2 以前
SELECT
 *
FROM
 (
  SELECT
   *,
   ROW_NUMBER() OVER (ORDER BY OBJECTID) rownum
  FROM
   JPN71
 ) J7
WHERE
 J7.rownum BETWEEN @from_rownum AND @to_rownum
;

-- SQL SERVER 2012 以降
SELECT
 *
FROM
 JPN71
ORDER BY
 OBJECTID
OFFSET @from_rownum - 1 ROWS
FETCH NEXT @one_page ROWS ONLY;
カテゴリー: 開発 タグ: パーマリンク