FETCH FIRST
PostgreSQL和PostgreSQL之间有什么区别FETCH NEXT
?文档只是说
NEXT 获取下一行
FIRST 获取查询的第一行
这没什么解释。我创建了一个包含示例行的示例表,并执行
SELECT * from users
FETCH FIRST 2 ROWS ONLY;
SELECT * from users
FETCH NEXT 2 ROWS ONLY;
并得到完全相同的输出。它几乎就像 ifFETCH FIRST
和FETCH NEXT
只是同义词LIMIT
(我读到,它不是 SQL 标准的一部分,与 不同FETCH [FIRST|NEXT]
)
如果两者相同,为什么文档不这么说?还是毕竟存在一些差异?
这个 Stack Overflow 答案意味着它们至少在某些 RDBMS 中可能以相同的方式运行,特别是在 MS Server 中
您链接的文档页面的命令与SELECT 语句中的和选项
FETCH
不同 。后者的描述如下:FETCH FIRST
FETCH NEXT
SELECT
因此,在这种情况下,FIRST 和 NEXT 不仅没有区别,而且可以完全省略。
其行为与 LIMIT 相同,只是 LIMIT 无法将相同的行计为一行,这与带有 WITH TIES 选项的 FETCH 不同。
对于游标的 FETCH 命令,FETCH NEXT 和 FETCH FIRST 的行为是不同的。例如以下语句序列:
显示
FETCH FIRST c
返回结果的第一行: