一个非常好的ORACLE的分页SQL语句
2005-07-21 08:52
525 查看
select * from (select my_table.*, rownum as my_rownum from ( select yhbh, yhmc from yysf_tb_yonghxx order by yhbh) my_table where rownum <20 ) where my_rownum>=10
------------------------------------
其它几种分页实现:
1.根据ROWID来分
select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from
t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc;
执行时间0.03秒
2.按分析函数来分
select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980;
执行时间1.01秒
3.按ROWNUM来分
select * from(select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum<10000) where
rn>9980;执行时间0.1秒
其中t_xiaoxi为表名称,cid为表的关键字段,取按CID降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录
个人感觉1的效率最好,3次之,2最差
------------------------------------
其它几种分页实现:
1.根据ROWID来分
select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from
t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc;
执行时间0.03秒
2.按分析函数来分
select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980;
执行时间1.01秒
3.按ROWNUM来分
select * from(select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum<10000) where
rn>9980;执行时间0.1秒
其中t_xiaoxi为表名称,cid为表的关键字段,取按CID降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录
个人感觉1的效率最好,3次之,2最差
相关文章推荐
- 一个引号引起的血案,ORACLE SQL 分页语句的错误
- Oracle中实现分页的sql语句
- 使用ODP.NET连接Oracle数据库一个OracleCommand运行多条SQL语句的方法
- ORACLE中一个SQL语句实现横向汇总和纵向汇总(求每个学生的总成绩,每学科总成绩和全班总成绩)
- Oracle用SQL语句分页
- oracle联合查询并更新一个表字段的sql语句
- Oracle中取字段唯一值的一个sql语句的写法
- 又一个通用分页存储过程,支持表别名,多表联合查询SQL语句
- ORACLE分页SQL语句
- Oracle分页SQL语句
- ORACLE分页SQL语句
- 一个通用的sql 分页查询语句
- springmvc mybatis 分页 控制层及sql语句 oracle mysql easyui
- 在oracle的PL程序块中执行一个varchar2类型变量中的sql 语句
- Oracle:SQL语句--对表的操作——添加一个字段 (即 添加 一列)
- oracle 分页查询和sql server 分页查询 的sql语句
- ORACLE 分页SQL语句
- ORACLE分页SQL语句(转载)
- oracle中分页查询的sql语句
- 分页语句 mysql 、server sql、oracle的分页语句