Sql 資料分頁解決方案
來源:互聯網
上載者:User
分頁|解決|資料 很多開始學習編程的朋友們在使用資料庫自訂分頁的時候,會遇到寫不好資料分頁預存程序的問題。
這裡我就自己的一點經驗和學習心得提供幾種資料庫內分頁的預存程序和大家分享一下。
1、 使用top
1.1利用目前記錄號(currentnote)和分頁頁面大小(pagesize)進行分頁
create proc GetNextPageInfo2
@pagesize int, --page size
@currentnote int --current note
As
declare @sql nvarchar(200)
set @sql=N'select top '+convert(varchar(10),@pagesize)+
' * from dbo.Userinfo where userid > ' + convert(varchar(10),@currentnote)
exec sp_executesql @sql
go
1.2利用本頁頁碼和分頁頁面大小進行分頁
create proc GetNextPageInfo
@pagesize int, --page size
@page int --CurrentPage NO
As
declare @jilu bigint
set @jilu=(@pagesize*@page)
declare @sql nvarchar(200)
set @sql=N'select top '+convert(varchar(10),@pagesize)+
' * from dbo.Userinfo where userid not in (select top ' + convert(varchar(10),@jilu) +
' userid from Userinfo order by userid) order by userid'
exec sp_executesql @sql
go
兩種方式比較:第一種執行效率應該高於第二種,不過再id號多變的情況下第二種方法使用起來相對簡單。
2、 使用rowcount
3、 2.1利用目前記錄號(currentnote)和分頁頁面大小(pagesize)進行分頁
create proc GetNextPageInfo3
@pagesize int, ----分頁大小
@currentnote int ----當前頁最後一條記錄號
as
set rowcount @pagesize
select * from userinfo where userid>@currentnote
當然,除上面的幾種外因該還有很多其他方法。希望大家在以後學習的過程中能過多多交流,大家也好共同進步。