Oracle之分頁

在Oracle中有一個方法rownum用來查詢第一行到第n行的內(nèi)容,但沒有一個合適的方法若查詢第x行到第y行的內(nèi)容,而在實際應(yīng)用中卻經(jīng)常需要查詢第x行到第y行的內(nèi)容,這時我們就需要使用rownum和子表查詢等內(nèi)容來進行查詢,因為這一塊內(nèi)容屬于Oracle總的常用部分所以專門在此介紹。

rownum

在Oralce中有一個偽列rownum,其在創(chuàng)建表的時候就存在了卻不顯示,若要使用這個列可以直接調(diào)用即可,也可以對這個列添加別名來調(diào)用。

rownum只能用于顯示小于某行的數(shù)據(jù)即第一行開始到你要查詢到的那一行為止的數(shù)據(jù)。

rownum對于小于某值的查詢條件

select * from emp where rownum<=3; 查詢emp前三行記錄

rownum對于等于某個值得查詢條件

select * from emp where rownum=1; 顯示第一行記錄

分頁

在Oracle把查詢第幾行到第幾行的操作稱為分頁,其具體操作是通過子查詢等操作完成。

select 列名 from (select 表名.*,rownum rn from 表名)表名 ?where rn操作;

思考如下:

1.選擇所有內(nèi)容

select * from emp;

2.顯示rownum

select e.*,rownum rn from(select * from emp)e;

這一步可以精簡為下面形式,但某些情況只能用上面那種

select emp.*,rownum rn from emp;

3.查詢

select * from(select e.*,rownum rn from (select * from emp)e);

4.其他變化

select * from (select emp.*,rownum rn from emp)emp where rn=3;

查詢第三行的信息

select * from(select e.*,rownum rn from (select * from emp)e where rownum<=10) where rn>2;

查詢第三到第十行信息。上面的也可以精簡為

select * from(select emp.*,rownum rn from emp) where rn>2 and rn<=10;

在某些時候我們需要先對表的內(nèi)容進行排序,隨后查詢第x行到第y行的內(nèi)容,這個時候有一個需要注意的點是rownum是在表產(chǎn)生的時候產(chǎn)生的偽列,所以使用排序會連著rownum的值進行排序,從而達不到想要的效果。

select rownum,sal from emp order by sal;

為了解決上述這個問題,我們需要使用子表查詢即先排好序,再在新表之中顯示rownum來規(guī)避這個問題。

select rownum,sal.* from (select sal from emp order by sal)sal;

考慮到排序的問題,所以在上方第二步的時候使用第一種方法即select e.*,rownum rn from(select * from emp)e;,在內(nèi)表select * from emp中進行排序可以完成在亂序中找到第x行到第y行的效果。

select * from(select e.*,rownum rn from(select * from emp order by sal)e)where rn>=3 and rn<=8;

輸出emp表薪資排名3到8的員工信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 查詢是數(shù)據(jù)的一個重要操作。用戶發(fā)送查詢請求,經(jīng)編譯軟件變異成二進制文件供服務(wù)器查詢,后返回查詢結(jié)果集給用戶,查詢會...
    產(chǎn)品小正閱讀 1,533評論 0 2
  • 幕課oracle學(xué)習筆記 --?。。cott用戶 --一.分組查詢 --1.常用的分組函數(shù):AVG(平均數(shù)),S...
    xiaoxiao蘇閱讀 1,377評論 0 5
  • 1.簡介 數(shù)據(jù)存儲有哪些方式?電子表格,紙質(zhì)文件,數(shù)據(jù)庫。 那么究竟什么是關(guān)系型數(shù)據(jù)庫? 目前對數(shù)據(jù)庫的分類主要是...
    喬震閱讀 2,004評論 0 2
  • 項目最近有用到從app自身跳轉(zhuǎn)到微信第三方的功能,從網(wǎng)上看到了很多方法,暫時沒有逐個去試,分享一個個人試過后可以使...
    trapQueen真好聽閱讀 4,148評論 0 2

友情鏈接更多精彩內(nèi)容