1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 15:18:01 +00:00
Files
til/postgres/fetch-specific-number-of-results.md

43 lines
1.4 KiB
Markdown

# Fetch Specific Number Of Results
If you pull up just about any intro to PostgreSQL (or even SQL), one of the
first things they are going to teach you is the `limit` clause. This is taught
as _the_ way for limiting the result set to a specific number of rows.
```sql
> select title from books limit 4;
+-----------------------+
| title |
|-----------------------|
| The Secret History |
| A Gentleman in Moscow |
| Exhalation: Stores |
| Annihilation |
+-----------------------+
SELECT 4
```
You might be as surprised as I was to learn that `limit` is not part of the SQL
standard. It is extremely common for this use case, but the SQL standard
defines `fetch first N rows only` as the way to fetch a specific number of
rows. As we can see, [it works identically to `limit
N`](https://www.postgresql.org/docs/current/sql-select.html#SQL-LIMIT).
```sql
> select title from books fetch first 4 rows only;
+-----------------------+
| title |
|-----------------------|
| The Secret History |
| A Gentleman in Moscow |
| Exhalation: Stores |
| Annihilation |
+-----------------------+
SELECT 4
```
The `rows` and `row` keywords are interchangeable which makes statements more
readable if, for instance, you're doing `... fetch first 1 row only`.
[source](https://www.cybertec-postgresql.com/en/postgresql-limit-vs-fetch-first-rows-with-ties/)