高效分頁語句:
1,row_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