首页 > 数据库 >SQLServer 分页Offset ...Rows Fetch Next ... Rows only

SQLServer 分页Offset ...Rows Fetch Next ... Rows only

时间:2022-10-22 23:01:09浏览次数:47  
标签:... rows pageSize SQLServer Game next only Rows id

语法:

select [column1] ,[column2] ... ,[columnN] from [tableName] order by [columnM] offset (pageNum -1 ) * pageSize rows fetch next pageSize rows only

备注:column1,column2 ... columnN表示实现需要查询的列,tableName是表名,columnM是需要排序的列名,pageNum是页码,pageSize是每页数据的大小,一般是先计算(pageNum-1)*pageSize的结果

offset pageIndex rows ,将前pageIndex 条记录舍去,fetch next pageSize rows only ,向后在读取pageSize 条数据。

备注统计总数量:COUNT(*) OVER()

实例:查询第1页,第2页数据,每页5条数据

/****** SSMS 的 SelectTopNRows 命令的脚本  ******/

SELECT  TOP(20) * from [ECP_Core].[dbo].[C_Game_HashBlock] order by id

SELECT  * FROM [ECP_Core].[dbo].[C_Game_HashBlock] order by id offset 0 rows fetch next 5 rows only

SELECT  *,totalCount=COUNT(1) over() FROM [ECP_Core].[dbo].[C_Game_HashBlock] order by id offset 5 rows fetch next 5 rows only

运行结果


SQLServer 分页Offset ...Rows Fetch Next ... Rows only_表名


二:使用存储过程

Create procedure page_procedure(

DECLARE  

 @pageIndex INT = 10,   -- 第几页

 @pageSize INT = 1;  -- 每页的记录数

as​

begin

SELECT  

 name, id,  

 overall_count = COUNT(*) OVER()

FROM C_Game_HashBlock

ORDER BY Id

 OFFSET (@pageIndex -1)*@pageSize ROWS

 FETCH NEXT @pageSize ROWS ONLY;

end

)



标签:...,rows,pageSize,SQLServer,Game,next,only,Rows,id
From: https://blog.51cto.com/jition/5786198

相关文章