新聞中心
ORACLE ROWNUM語句相信大家都有一定的了解,下面就為您詳細介紹ORACLE ROWNUM語句的使用方法,希望能對您能有所幫助。

創(chuàng)新互聯(lián)建站一直通過網(wǎng)站建設和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務,以網(wǎng)站建設、網(wǎng)站設計、移動互聯(lián)產(chǎn)品、全網(wǎng)營銷推廣服務為核心業(yè)務。10余年網(wǎng)站制作的經(jīng)驗,使用新網(wǎng)站建設技術,全新開發(fā)出的標準網(wǎng)站,不但價格便宜而且實用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設的選擇。
偽列(pseudocolumn)ROWNUM 中包含有當前的行號。很多人在***次試圖返回表中中間某段記錄子集時,都會發(fā)現(xiàn)下面這種方法行不通:
select * from all_objects where rownum between 30 and 49;
這種寫法之所以行不通,是因為 ROWNUM 列只有在記錄被取出或過濾時才會應用到記錄上。***行在被取出時會被拋出,因為它的 ROWNUM 是1。然后,下一行被取出;它也會被拋出,因為它是新的“1”,以此類推,直到所有的行都被使用。這個查詢不會返回任何記錄。解決方法是在看到30到50之間的記錄時必須先取出1到30行的記錄:
select * from all_objects where rownum <= 49;
然后,你可以將它作為一個子查詢并過濾掉開始點之前的所有記錄(注意我必須為“rownum”提供一個別名才能編譯):
select * from (select rownumr,all_objects.* from all_objects where rownum <=
49) t
where t.r >= 30;
為了保證它的效率,不妨對這個限制使用綁定變量。這將使用所有此類請求在字面上完全相同,從而消除了在每次請求不同的范圍求時重新解析查詢:
select * from (select rownumr,all_objects.* from all_objects where rownum <=:min) t
where t.r >= :max;
注意 ORACLE ROWNUM語句是在排序之后計算的,所以使用 ORDER BY 子句將得到新的記錄順序。然而,基于規(guī)則的優(yōu)化器用 ROWNUM 來“短路”查詢,并在 ROWNUM 子句被滿足時返回記錄給下一部分查詢。
Oracle的分頁查詢語句基本上可以按照本文給出的格式來進行套用。
名稱欄目:ORACLEROWNUM語句的使用
地址分享:http://m.5511xx.com/article/copidcs.html


咨詢
建站咨詢
