CREATE PROCEDURE pageTest -- ページめくりのテスト
-- 並べ替えフィールドを最初の列に配置する必要があります
(
@FirstID nvarchar(20)=null, -- 現在のページの最初のレコードの並べ替えフィールドの値
@LastID nvarchar(20)=null, -- 現在のページの最後のレコードのソート フィールドの値
@isNext bit=null、--true 1: 次のページ false 0: 前のページ
@allCount int 出力、 -- レコードの合計数を返します。
@pageSize int 出力、 -- 1 ページのレコード数を返します。
@CurPage int -- ページ番号 (ページ) 0: 最初のページ、-1 最後のページ。
)
AS
if @CurPage=0
始める
-- 統計的な合計レコード数
Product_test から @allCount=count(ProductId) を選択します
@pageSize=10 を設定します
--最初のページのデータを返します
トップ10を選択
製品ID、
製品名、
導入
Product_test から ProductId による注文
end
else if @CurPage=-1
select * from
(上位 10 位の ProductId を選択し、
製品名、
ProductId desc による Product_test 順序からの
導入
(aa)
ProductId で注文する
そうで
なければ始まる
@isNext=1の場合
-- 次のページに進みます
上位 10 個の ProductId を選択し、
製品名、
導入
from Product_test where ProductId > @LastID ProductId 順
それ以外
--前のページに戻る
*から選択してください
(上位 10 位の ProductId を選択し、
製品名、
導入
from Product_test where ProductId < @FirstID order by ProductId desc) as bb order by ProductId
終わり
数百万のデータ ページをめくるのは、100 個のデータに相当します。