一:前言
自從出來實習後,基本上都沒有按下心來總結下自己學的知識點,剛剛好現在快要國慶了,沒有到深圳出差,在公司呆了三天,可以說是在公司打了三天的醬油啊,所以前兩天都是在看些正則的文件,並且寫了下總結(等到要寫的時候才覺得好像也沒什麼要寫的啊),所以還是一點一點的寫吧,因為五月份的實習知識點自己也做了總結,但是一直都沒有具體分開載入到,我自己還是覺得好記性不如爛筆頭啊。
二: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支援rownumm(m為正整數)來說是不支援的,即是該條件是不成立的,所以就沒有資料。如果要查詢大於多少多少,必須要進行子查詢才行,下面具體舉列子說說。
我現在要查詢的10第一步:查詢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 asggfrom t-
table a wheregg=
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(selectrownum , 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中分頁查詢
上限條件必須放在子查詢,而下限條件必須放在外層查詢 rownum總是從1開始的,第一條不滿足去掉的話,第二條的rownum 又成了1 select from select rownum rowno,t.from tab t where rownum page size tab alias where...
Oracle中分頁查詢介紹
設有a表,pageindex 頁號 pagesize 頁大小 我們知oracle中提供了rownum欄位,我們可利用它實現分頁查詢 具體如 step1 先獲得乙個較大的父集,在構成此集合的過程中我們可以構建一定查詢規則 sql code select rownum as r,a.from a a o...
Oracle中分頁查詢語句
oracle分頁查詢語句基本上可以按照本文給出的格式來進行套用。oracle分分頁查詢格式 select from select a.rownum rn from select from table name a where rownum 40 where rn 21 其中最內層的查詢select ...