PostgreSQL Fetch 子句

2025年3月17日 | 阅读 3 分钟

在本节中,我们将了解 PostgreSQL FETCH 子句 的工作原理,它用于返回特定语句返回的行的一部分。

各种 RDBMS (关系数据库管理系统),如 H2、MySQL 和 HSQLDB,广泛使用 LIMIT 子句

我们已经在之前的 PostgreSQL 教程 的一节中了解了 Limit 子句,它用于限制语句返回的行数。而且 LIMIT 子句 并没有遵循 SQL 标准。

因此,为了遵循 SQL 标准,PostgreSQL 也引入了 FETCH 子句,用于检索命令返回的各种行。并且 FETCH 子句 于 2008 年由 SQL 推出。

PostgreSQL Fetch 子句的语法

PostgreSQL FETCH 子句的通用语法如下:

在上面的语法中,我们有以下参数

参数描述
开始它是一个整数,其基本值为 正数或零; 否则采用其默认值,即
ROW | ROWS在这里,RowROWS 的替代品,这意味着 ROW 是其他 ROWS 的替代品; 这就是为什么我们可以等效地使用它们。
Row_count如果我们没有明确定义 row_count,它将采用其默认值,即

注意

  • 如果未定义 OFFSET 子句,则 start 大于结果中的行数,并且不会返回任何行,因为表中行的顺序是未命名的。
  • 如果我们希望我们的软件与其他数据库系统兼容,我们应该使用 FETCH 子句,因为它遵循标准 SQL,并且 FETCH 子句在功能上与 LIMIT 子句相当。

PostgreSQL FETCH 子句的示例

为了了解 PostgreSQL fetch 子句的实际工作原理,我们将使用 CAR 表,该表是在 PostgreSQL 教程的 Limit 子句部分创建的。

在这里,我们从 Car 表中选择 Car_id、Car_name 和 Car_model 列,并使用 FETCH 子句 获取Car_name升序排列第一行,正如我们在以下命令中看到的那样

输出

执行上述命令后,我们将得到以下输出,它仅显示 CAR 表中的 第一行

PostgreSQL Fetch Clause

或者我们可以使用以下命令,因为这两个查询会生成相同的输出

输出

执行以下命令后,我们将得到以下输出,它显示与上述命令类似的输出

PostgreSQL Fetch Clause

如果我们想选择 前六行,并按其 Car_name 排序,我们可以使用以下命令:

输出

执行上述命令后,我们将得到以下输出,该输出显示了从 CAR 表中按其 Car_names 排序的前六行。

PostgreSQL Fetch Clause

在下面的示例中,我们将尝试获取 前六辆车 之后出现的另外四辆 Car,这些车按 Car_nameCAR 表中排序。

输出

执行上述命令后,我们将得到以下输出,它显示了以下四辆车的详细信息

PostgreSQL Fetch Clause