SqlServer分頁存儲過程

高效分頁語句:

1row_number()

select * from ( select *,ROW_NUMBER() over(order by rpId) as row from Ou_RolePermission)as t where t.row >0 and  t.row<=10

2,--top 分頁查詢

select top 10 * from Ou_RolePermission whererpId not in(select top 10 rpId from Ou_RolePermission)

 

分頁存儲過程:

create PROCEDURE GetPagedData

@pageIndex int = 1,--頁碼

@pageSize int =10,--頁容量

@isDel bit=0,--是否刪除

@rowCount float output,--輸出總行數

@pageCount float output--輸出總頁數

AS

BEGIN

    select @rowCount = COUNT(cid) from Classes where CIsDel=@isDel  --求總行數

    set @pageCount= CEILING(@rowCount / @pageSize)--使用天花板函數,將帶小數的數值,加去小數

   select *from (

      select ROW_NUMBER() over(order by cid) as rownum ,* from Classes where CIsDel=@isDel

   )astemp where temp.rownum >(@pageIndex-1)*@pageSize and temp.rownum <=@pageIndex*@pageSize

END

GO

 

declare @rc int,@pc int

exec GetPagedData3 , 10 ,1, @rc output,@pc output

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章