PostgreSQL – FETCH 子句
PostgreSQL FETCH 子句具有类似于 PostgreSQL LIMIT 子句的功能。它用于检索查询返回的部分行。由于 LIMIT 子句不是标准的 SQL 命令,PostgreSQL 提供了一种从查询中获取结果子集的标准方法。
Syntax:
OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ row_count ] { ROW | ROWS } ONLY
我们来分析一下上面的语法:
- ROW 和 FIRST 分别与 ROWS 和 NEXT 同义。
- 开始是一个零或正整数值。默认情况下,它为零。
- row_count 为 1 或更高。默认情况下,它是 1。
- 由于表中存储的行的顺序是不可预测的,因此应始终将 FETCH 子句与 ORDER BY 子句一起使用,以使结果集一致。
在本文中,我们将使用示例 DVD 租赁数据库,在此处进行了说明,可以通过单击此链接进行下载。
现在,让我们看几个例子。
示例 1:
在这里,我们将从示例数据库的电影表中查询按“标题”排序的电影的前 10 行。
SELECT
film_id,
title
FROM
film
ORDER BY
title
FETCH FIRST 10 ROW ONLY;
输出:
示例 2:
在这里,我们将在前五部电影之后查询电影的前 10 行,从我们示例数据库的电影表中按“标题”排序。
SELECT
film_id,
title
FROM
film
ORDER BY
title
OFFSET 5 ROWS
FETCH FIRST 10 ROW ONLY;
输出: