Poniższe stwierdzenia są równoważne:
SELECT * FROM foo LIMIT 10;
i
SELECT * FROM foo FETCH FIRST 10 ROWS ONLY;
ROWS
jest zamiennie z ROW
, co sprawia, że zaledwie 1 ściągam trochę bardziej gramatycznie spójne.
FETCH FIRST X ROWS ONLY
jest częścią standardu SQL, podczas gdy, zgodnie z moim wspomnieniem, LIMIT
nie jest. LIMIT
jest bardzo popularny i znacznie bardziej zwięzły, więc jest wspierany przez PostgreSQL.
Edytowane w celu dodania: Te dwie instrukcje mają tylko inną składnię. generują one dokładnie takie same plany:
=# 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)
Jeśli potrzebujesz przykład - jego [tutaj] (https://www.postgresql.org/docs/current/static/sql-fetch.html). Ale jeśli potrzebujesz kwerendy z pierwszego rzędu, najlepiej użyć 'limit' (w większości przypadków). – Abelisto
@Abelisto najlepszy? to stary niestandardowy sposób na zrobienie tego. –