版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.:.;如何在Oracle中實現SELECT TOP N的方法本文經過舉例的方式來教他如何在Oracle中實現SELECT TOP N的方法。 1.在Oracle中實現SELECT TOP N : 由于ORACLE不支持SELECT TOP語句,所以在ORACLE中經常是用ORDER BY跟ROWNUM的組合來實現SELECT TOP N的查詢。 簡單地說,實現方法如下所示: SELECT列名列名FROM (SELECT列名列名 FROM 表名 ORDER BY 列名列名) WHERE ROWNUM = N抽出記錄數 ORDER BY ROWNUM ASC下面舉個例子簡單闡明一下。 顧客表cu
2、stomer(id,name)有如下數據: ID NAME 01 first02 Second03 third04 forth05 fifth06 sixth07 seventh08 eighth09 ninth10 tenth11 last那么按NAME的字母順抽出前三個顧客的SQL語句如下所示: SELECT * FROM (SELECT * FROM CUSTOMER ORDER BY NAME) WHERE ROWNUM = 3 ORDER BY ROWNUM ASC輸出結果為: ID NAME08 eighth05 fifth01 first2.在TOP N紀錄中抽出第MM = N條
3、記錄: 在得到了TOP N的數據之后,為了抽出這N條記錄中的第M條記錄,我們可以思索從ROWNUM著手。我們知道,ROWNUM是記錄表中數據編號的一個隱藏子段,所以可以 在得到TOP N條記錄的時候同時抽出記錄的ROWNUM,然后再從這N條記錄中抽取記錄編號為M的記錄,即是我們希望得到的結果。 從上面的分析可以很容易得到下面的SQL語句: SELECT 列名列名 FROM ( SELECT ROWNUM RECNO, 列名列名FROM (SELECT 列名列名 FROM 表名 ORDER BY 列名列名) WHERE ROWNUM = N抽出記錄數 ORDER BY ROWNUM ASC )
4、WHERE RECNO = MM = N同樣以上表的數據為根底,那么得到以NAME的字母順排序的第二個顧客的信息的SQL語句應該這樣寫: SELECT ID, NAME FROM ( SELECT ROWNUM RECNO, ID, NAME FROM (SELECT * FROM CUSTOMER ORDER BY NAME) WHERE ROWNUM M的部分的數據是根本上不會用到的,我們僅僅是為了闡明方便而采用。 如上所述,那么SQL語句應為: SELECT 列名列名 FROM ( SELECT ROWNUM RECNO, 列名列名FROM (SELECT 列名列名 FROM 表名 OR
5、DER BY 列名列名) WHERE ROWNUM = N抽出記錄數 ORDER BY ROWNUM ASC ) WHERE RECNO = N 那么,2中的例子的SQL語句那么為: SELECT ID, NAME FROM ( SELECT ROWNUM RECNO, ID, NAME FROM (SELECT * FROM CUSTOMER ORDER BY NAME) WHERE ROWNUM = (M + X - 1)這個范圍內,當然最經濟的取值就是取等號的時候了。當然最后的抽取條件也不是RECNO = N了,應該是RECNO BETWEEN M AND (M + X - 1)了,所以
6、隨之而來的SQL語句那么為: SELECT 列名列名 FROM ( SELECT ROWNUM RECNO, 列名列名FROM (SELECT 列名列名 FROM 表名 ORDER BY 列名列名) WHERE ROWNUM = (M + X - 1) ORDER BY ROWNUM ASC ) WHERE RECNO BETWEEN M AND (M + X - 1)同樣以上面的數據為例,那么抽取NAME的字母順的第二條記錄開場的3條記錄的SQL語句為: SELECT ID, NAME FROM ( SELECT ROWNUM RECNO, ID, NAME FROM (SELECT * FROM CUSTOMER ORDER BY NAME) WHERE ROWNUM = (2 + 3 - 1) ORDER BY ROWNUM ASC ) WHERE RECNO BETWEEN 2 AN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青海高等職業(yè)技術學院《影視剪輯》2023-2024學年第一學期期末試卷
- 青海大學昆侖學院《建筑物理(光聲)》2023-2024學年第一學期期末試卷
- 青海柴達木職業(yè)技術學院《工業(yè)機器人編程與應用實訓》2023-2024學年第一學期期末試卷
- 青島幼兒師范高等??茖W?!讹暳咸砑觿W》2023-2024學年第一學期期末試卷
- 動力學在土木工程中的應用
- 互聯網車險平臺發(fā)展現狀及前景
- 幼兒運輸課程設計
- c語言課程設計車票訂購系統
- 小班野趣主題課程設計
- 中藥煎制技術要點及標準化操作流程
- 山東省醫(yī)療收費目錄
- JGT266-2011 泡沫混凝土標準規(guī)范
- 感恩祖國主題班會通用課件
- 栓釘焊接工藝高強螺栓施工工藝
- (完整版)醫(yī)療器械網絡交易服務第三方平臺質量管理文件
- 《0~3歲嬰幼兒動作發(fā)展與指導》項目一-0~3歲嬰幼兒動作發(fā)展概述
- 鐵總建設201857號 中國鐵路總公司 關于做好高速鐵路開通達標評定工作的通知
- 個人晉升現實表現材料范文四篇
- 持續(xù)質量改進提高偏癱患者良肢位擺放合格率
- 部編版六年級語文上冊期末復習課件(按單元復習)
- 軟件需求規(guī)格說明書(范例)
評論
0/150
提交評論