我想实现oracle的分页。在网上查了下,说可以用rownum实现。
假设有个表staff, 按name进行排序,并取出第11到20条纪录。
语法如下。select temptable2.* from
(select temptable.* rownum as row_num from
(select * from staff order by name)temptable
where rownum<=20)temptable1)
where temptable2.row_num >=11现在的问题是如果表中记录很多,那么最内层的语句select * from staff order by name是不是会得到整个表的纪录?
如果是那样效率会很差。有没有其它更好的方法?
假设有个表staff, 按name进行排序,并取出第11到20条纪录。
语法如下。select temptable2.* from
(select temptable.* rownum as row_num from
(select * from staff order by name)temptable
where rownum<=20)temptable1)
where temptable2.row_num >=11现在的问题是如果表中记录很多,那么最内层的语句select * from staff order by name是不是会得到整个表的纪录?
如果是那样效率会很差。有没有其它更好的方法?
解决方案 »
- 大家好,问一个字符集转换的问题
- sql orcale 查询求助
- 请教 proc 问题, 执行 EXEC SQL select * from XXX ,oracle 会报 2112 错误: SELECT..INTO returns too many rows
- 高分求助,关于oracle中处理过程函数利用游标返回结果集的问题。
- 请问大虾们:这是什么问题造成的?
- oracle 小白 求就
- 进入了oracle9i的Enterprise Manager Console 用system登入了服务名datatest,可是备份是报出没有设置节点身份
- 急急急 100分问题
- 误删除数据方件后,如何启动数据库
- sqlplus乱码外加NLS数据文件错误
- 怎样取两个年份的间隔值?
- Oracle里面默认的用户怎么启用?
请问为什么加上rowid就会运行得比较快。