ORACLE分頁查詢SQL語法

2021-06-03 16:17:58 字數 2313 閱讀 3828

--1:無order by排序的寫法。(效率最高)

--(經過測試,此方法成本最低,只巢狀一層,速度最快!即使查詢的資料量再大,也幾乎不受影響,速度依然!)

select *

from (select rownum as rowno, t.*

from k_task t

where flight_date between to_date('20060501', 'yyyymmdd') and

to_date('20060731', 'yyyymmdd')

and rownum <= 20) table_alias

where table_alias.rowno >= 10;

--2:有order by排序的寫法。(效率最高)

--(經過測試,此方法隨著查詢範圍的擴大,速度也會越來越慢哦!)

select *

from (select tt.*, rownum as rowno

from (select t.*

from k_task t

where flight_date between to_date('20060501', 'yyyymmdd') and

to_date('20060531', 'yyyymmdd')

order by fact_up_time, flight_no) tt

where rownum <= 20) table_alias

where table_alias.rowno >= 10;

--3:無order by排序的寫法。(建議使用方法1代替)

--(此方法隨著查詢資料量的擴張,速度會越來越慢哦!)

select *

from (select rownum as rowno, t.*

from k_task t

where flight_date between to_date('20060501', 'yyyymmdd') and

to_date('20060731', 'yyyymmdd')) table_alias

where table_alias.rowno <= 20

and table_alias.rowno >= 10;

--table_alias.rowno  between 10 and 100;

--4:有order by排序的寫法.(建議使用方法2代替)

--(此方法隨著查詢範圍的擴大,速度會越來越慢哦!)

select *

from (select tt.*, rownum as rowno

from (select *

from k_task t

where flight_date between to_date('20060501', 'yyyymmdd') and

to_date('20060531', 'yyyymmdd')

order by fact_up_time, flight_no) tt) table_alias

where table_alias.rowno between 10 and 20;

--5另類語法。(有order by寫法)

--(語法風格與傳統的sql語法不同,不方便閱讀與理解,為規範與統一標準,不推薦使用。)

with partdata as(

select rownum as rowno, tt.*  from (select *

from k_task t

where flight_date between to_date('20060501', 'yyyymmdd') and

to_date('20060531', 'yyyymmdd')

order by fact_up_time, flight_no) tt

where rownum <= 20)

select * from partdata where rowno >= 10;

--6另類語法 。(無order by寫法)

with partdata as(

select rownum as rowno, t.*

from k_task t

where flight_date between to_date('20060501', 'yyyymmdd') and

to_date('20060531', 'yyyymmdd')

and rownum <= 20)

select * from partdata where rowno >= 10;   

**:

分頁查詢語法

分頁查詢的簡單實現.分頁查詢無非有兩種實現方式 1 將資料庫中全部資料讀取出來,在分段獲取 2 直接讀取需要顯示的資料條數 使用第一種方法需要專門的快取伺服器,第二種方法適用在流量小的情況下使用,這裡簡單的使用第二種實現方法。下面是使用的流程 1 獲取總記錄數 2 前端計算分頁 3 傳遞頁面,對應查...

mssql 和oracle 分頁查詢的sql語句

最近在處理一些外部系統的資料庫,需要查詢是按照順序匯入到系統資料庫中,對於大資料量的處理分頁查詢不可缺少。系統中用到了兩類資料庫mssql和oracle,從網上找了語句查詢方便了程式操作。mssql with t1 as select row number over order by 主鍵 desc...

SQL分頁查詢

分頁sql查詢在程式設計的應用很多,主要有儲存過程分頁和sql分頁兩種,我比較喜歡用sql分頁,主要是很方便。為了提高查詢效率,應在排序欄位上加索引。sql分頁查詢的原理很簡單,比如你要查100條資料中的30 40條,你先查詢出前40條,再把這30條倒序,再查出這倒序後的前十條,最後把這十條倒序就是...