oracle中rownum函數(shù)用法

oracle中rownum函數(shù)用法

ID:34724974

大?。?2.96 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-03-10

oracle中rownum函數(shù)用法_第1頁(yè)
oracle中rownum函數(shù)用法_第2頁(yè)
oracle中rownum函數(shù)用法_第3頁(yè)
資源描述:

《oracle中rownum函數(shù)用法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、Oraclerownum用法程序里常常會(huì)遇到分頁(yè)的問(wèn)題,因?yàn)橛胔ibernate,所以一直就是用setMaxResult(),setFirstResult()之類的來(lái)搞定,可萬(wàn)一不讓用hibernate怎么辦?直接用SQL怎么搞定呢?解析oracle的rownum對(duì)于rownum來(lái)說(shuō)它是oracle系統(tǒng)順序分配為從查詢返回的行的編號(hào),返回的第一行分配的是1,第二行是2,依此類推,這個(gè)偽字段可以用于限制查詢返回的總行數(shù),而且rownum不能以任何表的名稱作為前綴。舉例說(shuō)明:例如表:student(學(xué)生)表,表結(jié)構(gòu)為:sql代碼1.ID   

2、????char(6)     --學(xué)號(hào)??2.name    VARCHAR2(10)   --姓名????3.createtablestudent(IDchar(6),nameVARCHAR2(100));???4.insertintosalevalues('200001',‘張一’);???5.insertintosalevalues('200002',‘王二’);???6.insertintosalevalues('200003',‘李三’);???7.insertintosalevalues('200004',‘趙四’);???

3、8.commit;???(1)rownum對(duì)于等于某值的查詢條件如果希望找到學(xué)生表中第一條學(xué)生的信息,可以使用rownum=1作為條件。但是想找到學(xué)生表中第二條學(xué)生的信息,使用rownum=2結(jié)果查不到數(shù)據(jù)。因?yàn)閞ownum都是從1開(kāi)始,但是1以上的自然數(shù)在rownum做等于判斷是時(shí)認(rèn)為都是false條件,所以無(wú)法查到rownum=n(n>1的自然數(shù))。sql代碼1.SQL>selectrownum,id,namefromstudentwhererownum=1;(可以用在限制返回記錄條數(shù)的地方,保證不出錯(cuò),如:隱式游標(biāo))???2.SQL

4、>selectrownum,id,namefromstudentwhererownum=1;???3.????ROWNUMID?????NAME??4.-------------------------------------------------------------------??5.?????????1200001張一???6.SQL>selectrownum,id,namefromstudentwhererownum=2;????7.????ROWNUMID?????NAME??8.----------------------

5、---------------------------------------------??(2)rownum對(duì)于大于某值的查詢條件如果想找到從第二行記錄以后的記錄,當(dāng)使用rownum>2是查不出記錄的,原因是由于rownum是一個(gè)總是從1開(kāi)始的偽列,Oracle認(rèn)為rownum>n(n>1的自然數(shù))這種條件依舊不成立,所以查不到記錄sql代碼1.SQL>selectrownum,id,namefromstudentwhererownum>2;???2.ROWNUMID?????NAME??3.---------------------

6、----------------------------------------------??那如何才能找到第二行以后的記錄呀。可以使用以下的子查詢方法來(lái)解決。注意子查詢中的rownum必須要有別名,否則還是不會(huì)查出記錄來(lái),這是因?yàn)閞ownum不是某個(gè)表的列,如果不起別名的話,無(wú)法知道rownum是子查詢的列還是主查詢的列。sql代碼1.SQL>select*from(selectrownumno,id,namefromstudent)whereno>2;???2.????????NOID?????NAME??3.-----------

7、--------------------------------------------------------??4.?????????3200003李三???5.?????????4200004趙四???6.SQL>select*from(selectrownum,id,namefromstudent)whererownum>2;???7.????ROWNUMID?????NAME??8.-------------------------------------------------------------------??(3)ro

8、wnum對(duì)于小于某值的查詢條件如果想找到第三條記錄以前的記錄,當(dāng)使用rownum<3是能得到兩條記錄的。顯然rownum對(duì)于rownum1的自然數(shù))的條件認(rèn)為是成立的,所以可以找到

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。