Sql Server排序分頁

2022-07-02 05:42:10 字數 2049 閱讀 2825

1、sql語句分頁

1

declare

@pageindex

int=12

declare

@pagesize

int=103

4select

*from

[t_student]5

orderby[

icreatedon

]desc

6 offset ((@pageindex

-1)*

@pagesize) rows fetch

next

@pagesize rows only

2、儲存過程排序分頁

1

alter

proc

[dbo

].[p_pagination]2

@sql

nvarchar(max), --

自定義查詢sql語句

3@sortfield

nvarchar(max), --

分頁-排序字段

4@isascending

bit, --

分頁-0正序/1倒序

5@pagesize

int, --

分頁-每頁數量

6@pageindex

int, --

分頁-第幾頁

7@totalrecord

int output --

分頁-總數8as

910declare

@sqlstring

nvarchar(max)11

set@sqlstring='

select @totalrecord=count(*) from ( } ) as t0'12

set@sqlstring

=replace(@sqlstring,'

}',@sql)13

exec sp_executesql @sqlstring,n'

@totalrecord int output

', @totalrecord

output

14print

'總數:'+

convert(nvarchar(max), @totalrecord

) 15

16set

@sqlstring='

select * from ( } ) as t0 order by }} offset } rows fetch next } rows only'17

set@sqlstring

=replace(@sqlstring,'

}',@sql)18

set@sqlstring

=replace(@sqlstring,'

}',@sortfield)19

set@sqlstring

=replace(@sqlstring,'

}',case

when

@isascending=0

then

''else

'desc

'end)20

set@sqlstring

=replace(@sqlstring,'

}',(@pageindex

-1)*

@pagesize)21

set@sqlstring

=replace(@sqlstring,'

}',@pagesize)22

exec sp_executesql @sqlstring

2324

--呼叫

25--

declare @totalrecord int

26--

exec [dbo].[p_pagination] 'select * from t_user','createtime',0,10,1,@totalrecord output

27--

print @totalrecord

SQL Server 分頁查詢

ps,此文是純個人筆記 公司裡乙個專案裡用到了一種資料庫分頁查詢的方式 1 定義乙個臨時的table 這個table有乙個自增的之間id,和要查的資料表的主鍵id 2 再一次查詢,用id在分頁數段來and 一下結果 具體操作如下 定義個臨時表 temptable declare temptable ...

Sql Server分頁語句

分頁方案一 利用not in和select top分頁 語句形式 select top 10 from testtable where id not in select top 20 id from testtable order by id order by id select top 頁大小 f...

sql server實現分頁

sqlserver 的資料分頁 假設現在有這樣的一張表 create table test id int primary key not null identity,names varchar 20 然後向裡面插入大約1000條資料,進行分頁測試 假設頁數是10,現在要拿出第5頁的內容,查詢語句如下...