怎么在Oracle和SqlServer中实现高效率分页? 在Oracle中用rowNumber() 实现的分页我觉得效率非常好,但我现在就是不知怎样在SqlServer中实现高效率分页。我看很多程序是先把整个记录集查询出来以后再进行分页,这应该是效率最不好的吧然后有些人为了提高效率先把PK字段(如:id)查了出来然后再进行分页,当然这个效率应该不错。我想问的是在SqlServer里能不能像Oracle似的光查出从几行到几行,而不用查询整个记录集以后再分页。先谢了!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【dinglinhu】截止到2008-06-25 17:03:42的历史汇总数据(不包括此帖):发帖数:1 发帖分:20 结贴数:1 结贴分:20 未结数:0 未结分:0 结贴率:100.00% 结分率:100.00% 敬礼! SQL Server 2005 的ROW_NUMBER() sqlserver就用游标定位分页,不用把rs全取出来 不用啊,用几个带有 TOP 的查询就可以做到了,到网上去搜搜看吧,可以搜到的。 我也想过用游标去控制,但没有用过,不知怎么下手。高手能否再详细点呢?关键是我们单位把网络给掐死了,外网只能上csdn。没法上网查。谢谢!!!!!!! select top 5 * from 表 where id not in(select top "+(currentpage-1)*5+" id from 表 order by id desc)order by id desccurrentpage 指的是第几页。5指的是一页的记录数,自己理解吧 DECLARE authors_cursor CURSOR FOR SELECT * FROM G_ADMIN OPEN authors_cursor FETCH NEXTFROM authors_cursor good too,能后再详细一点啊,如:一页显示5条,查询出第二页。用ibatis 写法也可以。多谢!!! select * from (select ROW_NUMBER() Over(排序) as 记录总数(自定义名称),字段1,字段2,字段(n) from 表名 条件) as 别名 where 别名.记录总数(自定义名称,必需相同) between 开始记录数 and 结束记录数 DECLARE authors_cursor CURSOR FOR SELECT * FROM G_ADMIN OPEN authors_cursor FETCH NEXT FROM authors_cursor 这个好像在SqlServer 2000里不能用,因2000没有ROW_NUMBER() 这个隐藏字段。还是很感谢!好了,我要结帖了。 JAVA Socket的read问题 JAVA中如何获取一个字符串占的像素?有什么方法啊? 新人Runtime类的问题请教 ****能不能得到指定类中使用到的类?自己觉得比较有意思**** TomCat配置问题 急! 我是新手,问大家几个问题,谢谢了!! 通过zxing可以读取图片中的条形码? java map 数值排序问题 为什么在装J2SE时会出错???(exe运行完后,跳出一个错误日志!!如下) JTable真是差劲 大家都谈谈 自己对程序优化的方法 集思广益。 斗地主游戏,谁来帮我测试啊
楼主【dinglinhu】截止到2008-06-25 17:03:42的历史汇总数据(不包括此帖):
发帖数:1 发帖分:20
结贴数:1 结贴分:20
未结数:0 未结分:0
结贴率:100.00% 结分率:100.00%
敬礼!
我也想过用游标去控制,但没有用过,不知怎么下手。
高手能否再详细点呢?
关键是我们单位把网络给掐死了,外网只能上csdn。没法上网查。
谢谢!!!!!!!
SELECT * FROM G_ADMIN OPEN authors_cursor FETCH NEXT
FROM authors_cursor
good too,能后再详细一点啊,如:一页显示5条,查询出第二页。用ibatis 写法也可以。多谢!!!
DECLARE authors_cursor CURSOR FOR
SELECT * FROM G_ADMIN OPEN authors_cursor FETCH NEXT
FROM authors_cursor
这个好像在SqlServer 2000里不能用,因2000没有ROW_NUMBER() 这个隐藏字段。
还是很感谢!好了,我要结帖了。