首页 > 解决方案 > “FETCH FIRST”之前/之后“OFFSET”的区别

问题描述

运行以下 2 个查询(在 postgres 中)返回相同的结果,但我到处都看到方法 1 始终是首选。

这两个查询有什么区别吗?(除了句法差异)。

1)

SELECT * FROM table_name
OFFSET 5 ROWS
FETCH FIRST 5 ROWS ONLY;

2)

SELECT * FROM table_name
FETCH FIRST 5 ROWS ONLY
OFFSET 5 ROWS;

标签: sqlpostgresqlselectsyntax

解决方案


在 PostgreSQL 中,这两个语句没有区别。然而,SQL:2008 标准将子句放在offset子句之前fetch,因此这将是首选形式,以使您的代码尽可能可移植。


推荐阅读