Oracle实现分页查询的SQL语法汇总
本文实例汇总了Oracle实现分页查询的SQL语法,整理给大家供大家参考之用,详情如下:
1.无ORDERBY排序的写法。(效率最高)
经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!
sql语句如下:
SELECT* FROM(SelectROWNUMASROWNO,T.* fromk_taskT whereFlight_datebetweento_date('20060501','yyyymmdd')and to_date('20060731','yyyymmdd') ANDROWNUM<=20)TABLE_ALIAS WHERETABLE_ALIAS.ROWNO>=10;
2.有ORDERBY排序的写法。(效率最高)
经过测试,此方法随着查询范围的扩大,速度也会越来越慢!
sql语句如下:
SELECT* FROM(SELECTTT.*,ROWNUMASROWNO FROM(Selectt.* fromk_taskT whereflight_datebetweento_date('20060501','yyyymmdd')and to_date('20060531','yyyymmdd') ORDERBYFACT_UP_TIME,flight_no)TT WHEREROWNUM<=20)TABLE_ALIAS whereTABLE_ALIAS.rowno>=10;
3.无ORDERBY排序的写法。(建议使用方法1代替)
此方法随着查询数据量的扩张,速度会越来越慢!
sql语句如下:
SELECT* FROM(SelectROWNUMASROWNO,T.* fromk_taskT whereFlight_datebetweento_date('20060501','yyyymmdd')and to_date('20060731','yyyymmdd'))TABLE_ALIAS WHERETABLE_ALIAS.ROWNO<=20 ANDTABLE_ALIAS.ROWNO>=10; TABLE_ALIAS.ROWNObetween10and100;
4.有ORDERBY排序的写法.(建议使用方法2代替)
此方法随着查询范围的扩大,速度也会越来越慢!
sql语句如下:
SELECT* FROM(SELECTTT.*,ROWNUMASROWNO FROM(Select* fromk_taskT whereflight_datebetweento_date('20060501','yyyymmdd')and to_date('20060531','yyyymmdd') ORDERBYFACT_UP_TIME,flight_no)TT)TABLE_ALIAS whereTABLE_ALIAS.rownoBETWEEN10AND20;
5.另类语法。(有ORDERBY写法)
该语法风格与传统的SQL语法不同,不方便阅读与理解,为规范与统一标准,不推荐使用。此处贴出代码供大家参考之用。
sql语句如下:
Withpartdataas( SELECTROWNUMASROWNO,TT.*FROM(Select* fromk_taskT whereflight_datebetweento_date('20060501','yyyymmdd')and to_date('20060531','yyyymmdd') ORDERBYFACT_UP_TIME,flight_no)TT WHEREROWNUM<=20) Select*frompartdatawhererowno>=10;
6.另类语法。(无ORDERBY写法)
Withpartdataas( SelectROWNUMASROWNO,T.* FromK_taskT whereFlight_datebetweento_date('20060501','yyyymmdd')and To_date('20060531','yyyymmdd') ANDROWNUM<=20) Select*frompartdatawhereRowno>=10;
相信本文所述代码能够对大家有一定的参考借鉴价值。