我试图找出如何只选择SELECT查询的第一个元素.
似乎很多人使用LIMIT 1来仅选择第一个,但这似乎不是最好的方法.
我正在阅读Postgresql文档中的SELECT,似乎有一个FETCH语句的选项但我在网上找不到任何例子,有人可以向我解释如何正确使用它吗?
jme*_*sky 22
以下陈述是等效的:
SELECT * FROM foo LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
和
SELECT * FROM foo FETCH FIRST 10 ROWS ONLY;
Run Code Online (Sandbox Code Playgroud)
ROWS是可以互换的ROW,这使得1在语法上更加一致.
FETCH FIRST X ROWS ONLY是SQL标准的一部分,而对于我的记忆,LIMIT则不是.LIMIT非常受欢迎,而且更加简洁,所以它也得到了postgres的支持.
编辑添加:这两个语句只是语法上不同.他们产生完全相同的计划:
=# explain select * from foo fetch first 10 row only;
QUERY PLAN
-------------------------------------------------------------
Limit (cost=0.00..0.22 rows=10 width=68)
-> Seq Scan on foo (cost=0.00..18.50 rows=850 width=68)
=# explain select * from foo limit 10;
QUERY PLAN
-------------------------------------------------------------
Limit (cost=0.00..0.22 rows=10 width=68)
-> Seq Scan on foo (cost=0.00..18.50 rows=850 width=68)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11333 次 |
| 最近记录: |