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
查询第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
解决方案 »
- 表变量可以做为存储过程的输入或输出参数吗?
- 查询分析器中有设置:将制表符保存为空格,这个设置作用何在呀?
- 复制订阅出现问题:发布的表中有IDENTITY 属性列怎么处理??搜遍了整个论坛也没找到相关信息!!
- 200求1万条记录(不要错的太离谱就行),不管用什么办法,只要给这么一个表给我有就有200给你(UP有分)
- 这个sql语句,我搞不定 sql server 2000
- java利用delete语句删除sqlserver2000中数据的疑问
- 这道是关于cost threshold for parallelism
- 再延伸一下,基础资料\入库\出库三个表联合查询库存表的SQL语句
- 有什么办法可以不用重装而增加SQL SERVER 7.0 的最大连接许可(licenses)????
- 多条件计数及统计问题
- 如何判断自动增加id的值?
- 如何在客户端分析出服务器端一个存储过程或触发器的执行瓶颈?
--*/
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 intexec 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