在本教程中,我們來學習如何使用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...