国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Oracle Fetch子句

2022-03-09 17:33 更新

FETCH 子句在 Oracle 中可以用來(lái)限制查詢返回的行數(shù),本教程將教大家如何使用 FETCH 子句。

Oracle FETCH 子句語(yǔ)法

以下說(shuō)明了行限制子句的語(yǔ)法:

[ OFFSET offset ROWS]
 FETCH  NEXT [  row_count | percent PERCENT  ] ROWS  [ ONLY | WITH TIES ]

OFFSET 子句

OFFSET 子句指定在行限制開始之前要跳過(guò)行數(shù)。OFFSET 子句是可選的。 如果跳過(guò)它,則偏移量為 0,行限制從第一行開始計(jì)算。

偏移量必須是一個(gè)數(shù)字或一個(gè)表達(dá)式,其值為一個(gè)數(shù)字。偏移量遵守以下規(guī)則:

  • 如果偏移量是負(fù)值,則將其視為 0。
  • 如果偏移量為 NULL 或大于查詢返回的行數(shù),則不返回任何行。
  • 如果偏移量包含一個(gè)分?jǐn)?shù),則分?jǐn)?shù)部分被截?cái)唷?/li>

FETCH 子句

FETCH 子句指定要返回的行數(shù)或百分比。

為了語(yǔ)義清晰的目的,您可以使用關(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 返回與最后一行相同的排序鍵。請(qǐng)注意,如果使用 WITH TIES,則必須在查詢中指定一個(gè) ORDER BY 子句。如果不這樣做,查詢將不會(huì)返回額外的行。

Oracle FETCH 子句實(shí)例

1. 獲取前 N 行記錄的示例

以下語(yǔ)句返回庫(kù)存量最高的前 5 個(gè)產(chǎn)品:

-- 以下查詢語(yǔ)句僅能在Oracle 12c以上版本執(zhí)行
SELECT
    product_name,
    quantity
FROM
    inventories
INNER JOIN products
        USING(product_id)
ORDER BY
    quantity DESC 
FETCH NEXT 5 ROWS ONLY;

得到結(jié)果如下

2. WITH TIES 示例

以下查詢使用 WITH TIES 選項(xiàng)的行限制子句:

-- 以下查詢語(yǔ)句僅能在Oracle 12c以上版本執(zhí)行
SELECT
 product_name,
 quantity
FROM
 inventories
INNER JOIN products
 USING(product_id)
ORDER BY
 quantity DESC 
FETCH NEXT 10 ROWS WITH TIES;


即使查詢請(qǐng)求了 10 行數(shù)據(jù),因?yàn)樗哂?WITH TIES 選項(xiàng),查詢還返回了另外兩行。 

請(qǐng)注意,這兩個(gè)附加行在 quantity 列的值與第 10 行 quantity 列的值相同。

3. 以百分比限制返回行的示例

以下查詢返回庫(kù)存量最高的前 1% 的產(chǎn)品:

-- 以下查詢語(yǔ)句僅能在Oracle 12c以上版本執(zhí)行
SELECT
    product_name,
    quantity
FROM
    inventories
INNER JOIN products
        USING(product_id)
ORDER BY
    quantity DESC 
FETCH FIRST 1 PERCENT ROWS ONLY;

SQL

執(zhí)行上面示例查詢語(yǔ)句,得到以下結(jié)果 :

庫(kù)存 (inventories) 表總共有 1112 行,因此,1112 中的 1% 是 11.1,所以提取 12 (行)。

4. OFFSET 示例

以下查詢將跳過(guò)庫(kù)存量最高的前 10 個(gè)產(chǎn)品,并返回接下來(lái)的 10 個(gè)產(chǎn)品:

-- 以下查詢語(yǔ)句僅能在Oracle 12c以上版本執(zhí)行
SELECT
 product_name,
 quantity
FROM
 inventories
INNER JOIN products
 USING(product_id)
ORDER BY
 quantity DESC 
OFFSET 10 ROWS 
FETCH NEXT 10 ROWS ONLY;

得到以下結(jié)果 –


SQL

注意:這個(gè)功能可以用于分頁(yè)的實(shí)現(xiàn)


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)