12
返回列表 发新帖
楼主: mailme365

用rownum方式的分页查询为何一定要三层嵌套?

[复制链接]
论坛徽章:
81
青年奥林匹克运动会-马术
日期:2014-09-10 21:37:07奥运会纪念徽章:跳水
日期:2012-09-22 18:27:58奥运会纪念徽章:现代五项
日期:2012-09-07 17:33:44奥运会纪念徽章:铁人三项
日期:2012-06-15 21:27:24版主1段
日期:2012-05-15 15:24:11蜘蛛蛋
日期:2012-05-14 10:50:40灰彻蛋
日期:2012-03-06 19:24:222012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:09ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:37
11#
发表于 2005-11-15 17:15 | 只看该作者
biti说得对,两层是不行的
因为rownum先于排序产生,两层的话得到的结果不会是你排序的结果,除非凑巧

使用道具 举报

回复
论坛徽章:
2
ITPUB元老
日期:2006-09-04 16:43:32
12#
 楼主| 发表于 2005-11-15 17:19 | 只看该作者
最初由 biti_rainy 发布
[B]2 层根本就不可以
SELECT ROWNUM RNUM, T.* FROM TB_USER T ORDER BY LAST_LOGIN_DATE

这里的rnum 没有什么实际意义,也许你碰巧是这个顺序罢了,rownum在这里是从表中获得记录的顺序而不是排序后的顺序。



另,两层可以使用分析函数
  select * from
   ( SELECT row_number() over(ORDER BY LAST_LOGIN_DATE )  RNUM, T.* FROM TB_USER T  )
    where  rnum > ? and  rnum < ?; [/B]


哦,对了,我又试验了一次,上一次的确是由于碰巧,这次发现rownum的确会乱掉的了。 多谢biti。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表