问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问下sqlserver2008分页语句怎么写?

发布网友 发布时间:2022-04-25 09:39

我来回答

1个回答

热心网友 时间:2023-12-02 08:26

1、这种SQL分页语句,是用正反向排序的原理写:
先按你需要的排序,取到你要的页数的数据;再从其中按倒序取,每页要显示多少行就取多少个。这样取出的就是需要的数据;再按需要的排序重新排下序就是所要取的第n页的数据了;
然后要取的页数用参数传递,就可以按参数取任意页的数据集。

2、这种做法的缺陷是:
用来排序的字段必须是关键数据集,即能唯一确定数据行的字段集;排序字段相同的数据行有多个的话,则这几行之间的排序会有问题;

3、排序字段是关键数据集的话,不用说了,直接用现有字段实现就是;参照加行号的语句,去掉rownum,按你自己的字段写order子句 替换rownum的排序就是;而且最内层还可以去掉一层子查询;

4、排序字段不是关键数据集的话,需要加个行号字段,作为排序字段:从1开始,递增1个的顺序(1、2、……);2008的话,支持row_number(),就好办多了,否则就只好自己控制生成一个序列字段,再合并到数据集上了。

5、加个行号字段的语句具体如下,其中具体表、字段,按你自己的实际情况代换下:
declare @iPage int --所取的页的序数 (第几页)
declare @iPageNum int --所取的数据行数(除最后一页外,每页所取的行数应该都是一样的)
declare @iRecordNumber int --取@iPage页时,结尾记录所在行数
declare @iRecordCount int --总记录行数

--变量初始化
set @iPage=2 --可用参数传递
set @iPageNum=10 --默认每页取10行
set @iRecordNumber=@iPage*@iPageNum
select @iRecordCount=count(任意字段,最好不要用*) from 你取数据的表

--取最后一页时,重算结尾所在行数(@iRecordNumber)、所取记录数(@iPageNum)
if @iRecordNumber>@iRecordCount
begin
set @iRecordNumber=@iRecordCount
if (@iRecordNumber%@iPageNum)>0
set @iPageNum=@iRecordNumber%@iPageNum
end

declare @strSQL varchar(max)
set @strSQL='select * from ('
set @strSQL=@strSQL + 'select top '+ convert(varchar(5),@iPageNum) +' * from('
set @strSQL=@strSQL + 'select top '+ convert(varchar(7),@iRecordNumber) +' * from'
set @strSQL=@strSQL + '('
set @strSQL=@strSQL + 'select row_number()over(order by 你需要的排序字段及正反序)as RowNum,*from 你取数据的表'
set @strSQL=@strSQL + ') a order by rownum'
set @strSQL=@strSQL + ') b order by rownum desc'
set @strSQL=@strSQL + ') c order by rownum'

exec(@strSQL)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求这图片原图或者主角 出自哪一边电影或者电视剧 哪位大神知道这张图原版在吗?求原版。。。 在word中加下划线时第一次出现一条下划线第二次怎么就出现两条... 诛仙2资料站里的宠物展示能在npc买到吗 求一些诛仙2中的可以变为人形的宠物名字 诛仙2 神域的神农殿里,这是什么东西 诛仙2宠物元神问题 诛仙2 商城 中 宠物元神 怎么比 宠物 还贵啊?宠物元神是干什么的啊... 电热水器怎么安固定花洒 猛鬼夜惊魂剧情介绍 sql语句分页详解 SQL语句分页查询,一页面多少数据合适 如何用sql语句 实现分页查询? SQL如何实现数据分页,要具体语句,谢谢 如何用sql语句 实现分页查询 用SQL语句怎么实现数据库分页? 跪求Affect3D全部合集,要动画不要CG图 高分求Affect3D的作品图集,G4已有,两个兽人和一个女的也有了,其他的图片或者视屏都可以。 求affect3d比较新的,好看的质量高的动画作品合集 求affect3d g4e-tara's second assignment注意是second,first有 affect3d 作品,求大神下载地址 affect3d的动漫,有多少都行。最好有游戏安装包。 Affect3D这个游戏已经出了,会有人破解吗 affect3d全部作品动画,注意只要动画 affect3d动画有几部 哪位大侠有affect3D的作品,求下载链接 你好!辛末年铜羊年纪念币上海造币厂生产的有没有收藏价值?? 这个纪念币是哪一年的,上海造币厂出的 我家有个上海造币厂的纪念币,价值大约有多少? 这枚上海造币厂的羊年纪念章现在多少钱 SQl分页语句 一条sql 语句搞定数据库分页 求SQL分页的语句 sql语句查询加分页 Sql 分页与排序语句 sql语句分页和排序问题 几种常见SQL分页方式效率比较,一帖子 SQL Server 分页 查询语句 SQl语句查询排名分页 如何使用sql语句进行分页操作? 怎么做可乐鸡腿? 可乐烧鸡腿应该怎么做? 可乐烧鸡腿家常做法大全 新手机号注册微信时要好友辅助注册,好友条件都符合,但是为什么申请不了 带鱼怎么制做 求助:怎样做带鱼 衣柜异味好大,用有什么办法能去除吗? 手机进水屏幕变蓝怎么办? 手机屏幕进水了,但还是好用,就是屏幕颜色变成蓝色了,截图上看不见颜色,咋办哪? 现在手机进水屏幕变成蓝色的了,白天看不见,晚上有点看得清楚这是什么情况?