oracle中分頁的知識

來源:互聯網
上載者:User

標籤:style   blog   color   資料   sp   div   c   on   log   

一:前言

      自從出來實習後,基本上都沒有按下心來總結下自己學的知識點,剛剛好現在快要國慶了,沒有到深圳出差,在公司呆了三天,可以說是在公司打了三天的醬油啊,所以前兩天都是在看些正則的文檔,並且寫了下總結(等到要寫的時候才覺得好像也沒什麼要寫的啊),所以還是一點一點的寫吧,因為五月份的實習知識點自己也做了總結,但是一直都沒有具體分開載入到部落格園,我自己還是覺得好記性不如爛筆頭啊。

 

二:oracle的rownum

  (1)在我剛剛出來時候覺得分頁很難搞,現在也學了這麼久,但是我自己覺得還是有點難度,可能是自己沒有偶真的去理解的吧,對於rownum,剛剛開始用的是時候就是提取一定範圍的資料,也可以用between····and來做,下面都會進行具體說一下。

 

  (2)rownum

    對於oracle來說,我們查詢一條資料,條件是rownum小於10

select id,bh,xm,xb from t_table where rownum<10

這條語句是可以查詢到資料的。

但是如果你的條件是查詢的條件是rownum>10;如果直接寫如下

select id,bh,xm,xb from t_table where rownum>10

這條sql語句是查詢不到資料的。

所以我上網查了下,都說的是oracle支援rownum<m(m為大於1正整數)即是該條件是成立的,而對於rownum>m(m為正整數)來說是不支援的,即是該條件是不成立的,所以就沒有資料。如果要查詢大於多少多少,必須要進行子查詢才行,下面具體舉列子說說。

我現在要查詢的10<rownum<100的資料,那麼我們一步步的寫如下:

第一步:查詢rownum小於100的資料

select id,bh,xm,xb from t_table where rownum<100

下一步我們就是想查詢大於10-的資料,如果你這樣寫那麼就不會查詢到資料

select rownum, id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) where rownum>10

有可能不看到網上說需要給rownum命個別名如下:

select rownum rn, id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) where rn>10

這樣的話會報錯,“rn標識符無效”,是由於查詢的條件必須是表中的資料,用別名的話是不行的。

比如:

 select a.id as gg from t-table a where gg =1;

本條sql也是會報錯的,因為where後面的條件必須是資料庫中有的欄位名或者是子查詢出來的資料中包含的欄位

在寫句正確的如下

select a.id  from t_table a where id=1;select bh from (select a.id  as gg ,a.bh from t_xx a)  where gg =1;

所以那麼這裡就應該懂了該如何寫

還有一點要注意:就是rownum必須要用別名,如果不用的話查詢不到資料,因為rownum不是某個表的列,不用別名的話就不知道是子查詢中的還是主查詢中的列了

select  id,bh,xm,xb from(select rownum , id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) )) where rownum>10

所以最終的查詢語句應該是這樣的:

select  id,bh,xm,xb from(select rownum rn , id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) )) where rn>10

三:總結

  算是寫完了,以後自己想不明白時就可以多看看了。其實有時候靜下心來時想想一些自己以前想不通的地方還是有好處的。這裡的記載主要是提醒自己在寫子查詢語句時要注意欄位的用於的範圍。謹記謹記!!!

 

oracle中分頁的知識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.