本文总结了oracle分页查询的sql语法,并为大家收集,供大家参考。详情如下:

1。通过排序没有顺序的写作(最高效率)

经过测试,这种方法成本最低,只嵌套一层,速度最快!即使数据查询量很大,它几乎不受影响,而且速度仍然很快!

SQL语句如下所示:


*选择
从(行号为rowno,T *)
从k_task T
在flight_date之间to_date('20060501 ','yyyymmdd)和
to_date('20060731 ','yyyymmdd)
和rownum <= 20 table_alias)
在table_alias.rowno > = 10;




2。按顺序排序(最高效率)。

经过测试,随着查询范围的扩大,这种方法会越来越慢。

SQL语句如下所示:


*选择
从(选择TT。*,行号为rowno)
从(选择T *)
从k_task T
在flight_date之间to_date('20060501 ','yyyymmdd)和
to_date('20060531 ','yyyymmdd)
为了fact_up_time,flight_no TT)
在rownum <= 20 table_alias)
在table_alias.rowno > = 10;




三.通过排序而没有顺序的写作。(推荐使用方法1代替)



随着查询数据的扩展,这个方法会慢一些。

SQL语句如下所示:


*选择
从(行号为rowno,T *)
从k_task T
在flight_date之间to_date('20060501 ','yyyymmdd)和
to_date('20060731 ','yyyymmdd '))table_alias
在table_alias.rowno < = 20
和table_alias.rowno > = 10;
table_alias.rowno 10和100之间;




4。按顺序书写。(建议使用方法2代替)

这种方法随着查询范围的增加而增加,速度会越来越慢!

SQL语句如下所示:


*选择
从(选择TT。*,行号为rowno)
(从中选择*)
从k_task T
在flight_date之间to_date('20060501 ','yyyymmdd)和
to_date('20060531 ','yyyymmdd)
为了fact_up_time,flight_no)table_alias TT)
在10和20之间的table_alias.rowno;




5。替代文法(以书面形式)

语法风格不同于传统的sql语法。阅读和理解是不方便的。不推荐使用标准和统一标准。

SQL语句如下所示:


与partdata为(
行号为rowno,TT。*(选择)
从k_task T
在flight_date之间to_date('20060501 ','yyyymmdd)和
to_date('20060531 ','yyyymmdd)
为了fact_up_time,flight_no TT)
在rownum <= 20)
SELECT * FROM partdata哪里rowno > = 10;




6。另一种语法。


与partdata为(
行号为rowno,T *
从k_task T
在flight_date之间to_date('20060501 ','yyyymmdd)和
to_date('20060531 ','yyyymmdd)
和rownum <= 20)
SELECT * FROM partdata哪里rowno > = 10;




相信本文中描述的代码对大家都有一定的参考价值。