PostgreSQL 获取子句


PostgreSQL 获取子句

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

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

我们在PostgreSQL 教程的前面部分学习了限制子句,它用于限制语句返回的行数。并且LIMIT 子句不遵循 SQL 标准。

因此,为了遵循 SQL 标准,PostgreSQL 还引入了FETCH 子句,用于恢复命令返回的各种行。而FETCH条款于2008年通过SQL启动。

PostgreSQL Fetch 子句的语法

PostgreSQL FETCH 子句的一般语法如下:

OFFSET start { ROW | ROWS }  
FETCH { FIRST | NEXT } [ row_count ] { ROW | ROWS } ONLY

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

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

笔记:

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

PostgreSQL FETCH 子句的例子

要了解实时工作的 PostgreSQL fetch 子句,我们将使用CAR\表,该表是在 PostgreSQL 教程的限制子句部分中创建的。

在这里,我们选择Car_id,Car_name和Car_model从列表,并获取第一行是由分类Car_名升序用的帮助下FETCH子句我们可以使用以下命令查看:

SELECT car_id, car_name, car_model  
FROM Car  
ORDER BY car_name   
FETCH FIRST ROW ONLY;

输出

执行上面的命令后,我们会得到下面的输出,其中仅显示第一行CAR\表。

PostgreSQL 获取子句

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

SELECT car_id, car_name, car_model  
FROM Car  
ORDER BY car_name   
FETCH first 1 ROW ONLY;

输出

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

PostgreSQL 获取子句

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

SELECT car_id, car_name  
FROM Car  
ORDER BY car_name   
FETCH first 6 ROW ONLY;

输出

执行上面的命令后,我们会得到下面的输出,显示第一行-SiX,这是由它们的排序Car_namesCAR\表。

PostgreSQL 获取子句

在下面的示例中,我们将尝试获取接下来的四个Car,它们位于CAR表中按Car_name排序的第一个六辆汽车之后。

SELECT car_id, car_name, car_model  
FROM Car  
ORDER BY car_name  
OFFSET 4 ROWS   
FETCH first 4 ROW ONLY;

输出

执行上述命令后,我们将得到以下输出,其中显示了以下四个 Cars 详细信息:

PostgreSQL 获取子句