MSSQL分页方法
SQL中的分页方法: 查询第X页,每页Y条记录 最基本的处理方法: 如果表中有主键(记录不重复的字段也可以),可以用类似下面的方法,当然y,(x-1)*y要换成具体的数字,不能用变量: select top y * from 表 where 主键 not in(select top (x-1)*y 主键 from 表) 如果表中无主键,可以用临时表,加标识字段解决.这里的x,y可以用变量. select id=identity(int,1,1),* into #tb from 表 select * from #tb where id between (x-1)*y and x*y-1
/*--分页方法: --*/ declare @sqlstr nvarchar(4000), --查询字符串 @pagecount int, --第N页 @pagesize int --每页行数 select @pagecount=3,@pagesize=10 ,@sqlstr= 'select * from sysobjects ' set nocount on declare @P1 int, --P1是游标的id @rowcount int exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output select @rowcount as 总行数,ceiling(1.0*@rowcount/@pagesize) as 页数,@pagecount as 当前页 set @pagecount=(@pagecount-1)*@pagesize+1 exec sp_cursorfetch @P1,16,@pagecount,@pagesize exec sp_cursorclose @P1
CSDN中邹老大的回复 整理记录一下
0 顶0 踩
原文章浏览量:1174
原文章分类:数据库
原文链接:https://www.iteye.com/blog/lizhiyu-1169135