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