返回日记本

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