oracle中,fetch用于限制查詢返回的行數(shù),可指定在行限制開始之前要跳過行數(shù),若跳過則偏移量為0,行限制從第一行開始計(jì)算,語法為“[OFFSET offset ROWS]FETCH NEXT ROWS[ONLY|WITH TES]”。
本教程操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。
oracle中fetch的用法是什么
FETCH子句在Oracle中可以用來限制查詢返回的行數(shù),本教程將教大家如何使用FETCH子句。
Oracle FETCH子句語法
以下說明了行限制子句的語法:
[ OFFSET offset ROWS] FETCH NEXT [ row_count | percent PERCENT ] ROWS [ ONLY | WITH TIES ]
OFFSET子句指定在行限制開始之前要跳過行數(shù)。OFFSET子句是可選的。 如果跳過它,則偏移量為0,行限制從第一行開始計(jì)算。
偏移量必須是一個(gè)數(shù)字或一個(gè)表達(dá)式,其值為一個(gè)數(shù)字。偏移量遵守以下規(guī)則:
-
如果偏移量是負(fù)值,則將其視為0。
-
如果偏移量為NULL或大于查詢返回的行數(shù),則不返回任何行。
-
如果偏移量包含一個(gè)分?jǐn)?shù),則分?jǐn)?shù)部分被截?cái)唷?/p>
FETCH子句指定要返回的行數(shù)或百分比。
為了語義清晰的目的,您可以使用關(guān)鍵字ROW而不是ROWS,F(xiàn)IRST而不是NEXT。 例如,以下子句的行為和產(chǎn)生的結(jié)果相同:
FETCH NEXT 1 ROWS FETCH FIRST 1 ROW
ONLY | WITH TIES選項(xiàng)
僅返回FETCH NEXT(或FIRST)后的行數(shù)或行數(shù)的百分比。
WITH TIES返回與最后一行相同的排序鍵。請注意,如果使用WITH TIES,則必須在查詢中指定一個(gè)ORDER BY子句。如果不這樣做,查詢將不會返回額外的行。
Oracle FETCH子句實(shí)例
1. 獲取前N行記錄的示例
以下語句返回庫存量最高的前10個(gè)產(chǎn)品:
-- 以下查詢語句僅能在Oracle 12c以上版本執(zhí)行 SELECT product_name, quantity FROM inventories INNER JOIN products USING(product_id) ORDER BY quantity DESC FETCH NEXT 5 ROWS ONLY;
推薦教程:《Oracle視頻教程》