Oracle Fetch子句
Oracle Fetch子句
FETCH子句在Oracle中可以用來限制查詢返回的行數,本教程將教大家如何使用FETCH子句。
Oracle FETCH子句語法
以下說明了行限制子句的語法:
[ OFFSET offset ROWS] FETCH NEXT [ row_count | percent PERCENT ] ROWS [ ONLY | WITH TIES ]
OFFSET子句
OFFSET子句指定在行限制開始之前要跳過行數。OFFSET子句是可選的。 如果跳過它,則偏移量為0,行限制從第一行開始計算。
偏移量必須是一個數字或一個表達式,其值為一個數字。偏移量遵守以下規則:
- 如果偏移量是負值,則將其視為0。
- 如果偏移量為NULL或大于查詢返回的行數,則不返回任何行。
- 如果偏移量包含一個分數,則分數部分被截斷。
FETCH子句
FETCH子句指定要返回的行數或百分比。
為了語義清晰的目的,您可以使用關鍵字ROW而不是ROWS,FIRST而不是NEXT。 例如,以下子句的行為和產生的結果相同:
FETCH NEXT 1 ROWS FETCH FIRST 1 ROW
ONLY | WITH TIES選項
僅返回FETCH NEXT(或FIRST)后的行數或行數的百分比。
WITH TIES返回與最后一行相同的排序鍵。請注意,如果使用WITH TIES,則必須在查詢中指定一個ORDER BY子句。如果不這樣做,查詢將不會返回額外的行。
Oracle FETCH子句實例
1. 獲取前N行記錄的示例
以下語句返回庫存量最高的前10個產品:
-- 以下查詢語句僅能在Oracle 12c以上版本執行
SELECT product_name, quantity FROM inventories INNER JOIN products USING(product_id) ORDER BY quantity DESC FETCH NEXT 5 ROWS ONLY;
2. WITH TIES示例
以下查詢使用WITH TIES選項的行限制子句:
-- 以下查詢語句僅能在Oracle 12c以上版本執行
SELECT product_name, quantity FROM inventories INNER JOIN products USING(product_id) ORDER BY quantity DESC FETCH NEXT 10 ROWS WITH TIES;
即使查詢請求了10行數據,因為它具有WITH TIES選項,查詢還返回了另外兩行。 請注意,這兩個附加行在quantity列的值與第10行quantity列的值相同。
相關文章
- Oracle Between子句
- Oracle Like子句
- Oracle ROLLBACK語句(回滾事務)
- Oracle 外鍵創建
- Oracle Initcap()函數
- Memcached 教程
- Memcached append 命令
- Memcached stats slabs 命令
- Memcached flush_all 命令
- DB2 別名
- DB2約束
- DB2觸發器
- oracle11g數據庫常用操作實例總結
- 12類Oracle日期函數超全面總結
- PLSQL一些常用知識點梳理總結
- Oracle導出文本文件的三種方法(spool,UTL_FILE,sqluldr2)
- oracle丟失temp表空間的處理方法
- Oracle中ROW_NUMBER()OVER()函數用法實例講解
- Oracle報錯:ORA-28001:口令已失效解決辦法
- Oracle?19c創建數據庫的完整步驟(詳細明了)