database分頁

說說oracle分頁的sql語句,分排序和不排序兩種。

當結果集不需要進行排序時,每頁顯示條數爲:rowPerPage,當前頁數爲:currentPage。

1、 相對來說,這種查詢速度會快一些,因爲當currentPage小時,嵌套語句查詢的結果集小。但當currentPage 變大時,查詢速度會慢慢變慢。當結果集很大時,查詢第一頁跟最後一頁的速度會有明顯變化。(傾向用這種!)

select * from(
select rownum r, field1,field2 from table_name where rownum <= currentPage * rowPerPage
)
where r > (currentPage-1) * rowPerPage

2、相對來說,這種查詢速度會慢一些,無論當currentPage大小,嵌套語句查詢的結果集都是一樣多的,都是整個結果集。但是,當結果集很大時,查詢第一頁跟最後一頁的速度不會有明顯變化。

select * from(
select rownum r, field1,field2 from table_name
)
where r > (currentPage-1) * rowPerPage and r <= currentPage * rowPerPage

當需要進行排序時,以第一種方式進行示例如下:

select * from(
select rownum r, a.* from (
select field1,field2 from table_name order by field1
) a where rownum <= currentPage * rowPerPage
) where r > (currentPage-1) * rowPerPage
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章