MSSQL簡單的分頁儲存過程

2021-04-06 20:46:02 字數 1080 閱讀 4495

drop table t1

create table t1

(id int,

s1 int

)insert into t1 values(1,4)

insert into t1 values(2,5)

insert into t1 values(3,5)

insert into t1 values(4,4)

insert into t1 values(5,3)

insert into t1 values(6,2)

insert into t1 values(7,1)

select * from t1 order by s1 desc,id desc

--select top [pagesize] * from t1 where id not in

--(select top [pagesize-1*pageno] id from t1 order by s1 desc,id desc)

-- order by s1 desc ,id desc

--pagesize -每頁顯示多少條

--pageno   -第幾頁

select top 3 * from t1 where id not in

(select top 3 id from t1 order by s1 desc,id desc)

order by s1 desc ,id desc

以上的超過10w條就慢了.

如果用sql2005 就簡單很多.

--新增資料

declare @i int

set @i=1

while(@i<200000)

begin

insert into t1 values(@i+1,@i)

set @i=@i+1

endselect * from

(select row_number() over (order by s1 desc) as pos from t1

) as t

where t.pos >198000 and t.pos<198050

超過20w也就1秒鐘

MSSQL通用分頁儲存過程

分頁的儲存過程 create procedure getrecordfrompage tblname varchar 255 表名 fldname varchar 255 欄位名 pagesize int 10,頁尺寸 pageindex int 1,頁碼 iscount bit 0,返回記錄總數,...

mssql高效的分頁儲存過程

最近在做一個幾百萬條資料的分頁查詢,研究了各種方案,在本機上用專案的實際資料庫做測試,測試過程 is very 痛苦,不堪回首ing。現在廢話不多說,直接上結果,相信這也是大多數搜尋答案的人最願意看的方式。create procedure dbo p gridviewpager recordtota...

MSSQL 儲存過程分頁 測試 3

declare user condition varchar 500 declare user sort varchar 20 declare user rank varchar 4 declare page size real declare page order int declare sqlq...

MSSQL 儲存過程分頁 測試 4

page size int 24,page order int 0 asset nocount on declare sqlquery varchar 1000 if page order 0 if user rank asc if user query begin set sqlquery sel...

簡單的分頁儲存過程

傳入參數列名 當前頁 每頁大小 查詢欄位傳入自己需要的資料 也可以全部。where條件可以為空。排序欄位按自己的需求設定 create procedure prc page result in tablename varchar 100 表名 in currpage int,當前頁 in pages...