日期:2014-05-19  浏览次数:20537 次

oracle分页查询
SELECT ROWNUM AS rnum,c.* FROM s_city c;

SELECT ROWNUM AS rnum,c.* FROM (SELECT * FROM s_city) c;


这两种oracle分页有什么区别,结果集都一样,上网查了,都是使用第二种,求解
oracle

------解决方案--------------------
其实我觉得都是一样的 我在我的数据库上测试也是一样的 把2个结果集 进行join 然后 rnum相等,主键不相等的是不存在的!
因为没有order by所以2种都是使用系统默认的顺序 所以 先 select *  from s_city 还是直接 取rownum其实数据的顺序都是一样的 !一般选择先查询是 因为正常情况下都会先对数据进行某种排序 然后再取某一段数据!
------解决方案--------------------
一样的。。参照表都是同一个表 
------解决方案--------------------
你写得不对 , 如果用rownum分页的话是三层sql,必须先order by
还有一种是用rownumber() over()分页,不需要order by
------解决方案--------------------
你理解的不全吧,括号里加条件和rownum,不然rownum>1是查不出数据的