SQL FETCH限制查詢返回的行數

2022-09-19 05:06:11 字數 1490 閱讀 5026

在本教程中,我們來學習如何使用sqlfetch子句來限制查詢返回的行數。

1. sql fetch子句簡介

要限制查詢返回的行數,請使用limit子句。limit子句得到了許多資料庫系統的廣泛支援,例如mysql,h2和hsqldb。 但是,limit子句不是sql標準子句。

以下顯示了sqlfetch子句的語法:

offset offset_rows 

fetch [ fetch_rows ] only

在上面語法中,

由於行以不可**的順序儲存在表中,因此應始終將fetch子句與order by子句一起使用以獲得一致的輸出。

許多資料庫系統都支援offset fetch子句,包括oracle database 12c +,postgresql 10+ 和microsoft sql server 2012+ 。 但是,每個資料庫系統都會以不同的方式實現offset fetch子句。

offset fetch子句通常用於需要分頁的客戶端或web應用程式。 例如,如果每個頁面有十行,要獲取第二頁的行,可以跳過前10行並返回接下來的10行。

2. sql fetch示例

我們將使用示例資料庫中的employees表進行演示。

以下語句返回薪水最高的員工資訊:

select 

employee_id,

first_name,

last_name,

salary

from employees

order by

salary desc

offset 0 rows

fetch next 1 rows only;

在此示例中,首先,order by子句按薪水從高到低對員工進行排序。offset子句跳過0行,fetch子句返回第一行。

以下語句按薪水對員工進行排序,跳過前五名薪水最高的員工,然後取出接下來的五名員工。

select 

employee_id,

first_name,

last_name,

salary

from employees

order by

salary desc

offset 5 rows

fetch next 5 rows only;

在本教程中,您已學習如何在開始返回任何行之前使用sqlfetch子句跳過結果集中的n行。

select限制查詢返回條數

如果select返回多行,而我們需要只返回一行或指定數量的行,怎麼辦?各種資料庫對這一實現並不統一 oracle select name from product where rownum 1 mysql mariadb postgresql或者sqlite select name from pro...

利用Rownum限制查詢所返回的行數

本文通過個人經驗來客觀的講述如何利用rownum來限制查詢所返回的行數。軟體環境 1 windows nt4.0 oracle 8.0.4。2 oracle安裝路徑為 c orant。含 釋 1 rownum是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類...

sql語句,限制返回記錄條數

limit 子句可以被用於強制select 語句返回指定的記錄數。limit 接受乙個或兩個數字引數。引數必須是乙個整數常量。如果給定兩個引數,第乙個引數指定第乙個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。初始記錄行的偏移量是 0 而不是 1 為了與 postgresql 相容,mys...