📅  最后修改于: 2023-12-03 15:20:15.970000             🧑  作者: Mango
在SQL中,OFFSET-FETCH子句可以用来限制查询结果返回的行数和范围。它通常与SELECT语句一起使用。
SELECT column1, column2, ...
FROM table
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...
OFFSET offset_value ROWS
FETCH { FIRST|NEXT } fetch_value ROWS ONLY;
其中,offset_value
表示要跳过的行数,fetch_value
表示要返回的行数。
假设有一个名为students
的表,它包含以下列:id
、name
、age
、gender
。我们可以使用OFFSET-FETCH子句来查询前5个学生的信息:
SELECT id, name, age, gender
FROM students
ORDER BY id
OFFSET 0 ROWS
FETCH FIRST 5 ROWS ONLY;
以上SQL语句会从students
表中获取前5行数据,并按id
列进行升序排序。
如果我们要查找第6到第10个学生的信息,可以改为:
SELECT id, name, age, gender
FROM students
ORDER BY id
OFFSET 5 ROWS
FETCH NEXT 5 ROWS ONLY;
当我们不需要排序时,可以省略ORDER BY
子句,这样查询速度会更快:
SELECT id, name, age, gender
FROM students
OFFSET 5 ROWS
FETCH NEXT 5 ROWS ONLY;
FIRST
和NEXT
关键字是等效的,可以互换使用。fetch_value
,则返回结果集中的所有行。