diff --git a/README.md b/README.md index b41a9c0..cb10821 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1524 TILs and counting..._ +_1525 TILs and counting..._ --- @@ -777,6 +777,7 @@ _1524 TILs and counting..._ - [Escaping String Literals With Dollar Quoting](postgres/escaping-string-literals-with-dollar-quoting.md) - [Export Query Results To A CSV](postgres/export-query-results-to-a-csv.md) - [Extracting Nested JSON Data](postgres/extracting-nested-json-data.md) +- [Fetch Specific Number Of Results](postgres/fetch-specific-number-of-results.md) - [Find Duplicate Records In Table Without Unique Id](postgres/find-duplicate-records-in-table-without-unique-id.md) - [Find Records That Contain Duplicate Values](postgres/find-records-that-contain-duplicate-values.md) - [Find Records That Have Multiple Associated Records](postgres/find-records-that-have-multiple-associated-records.md) diff --git a/postgres/fetch-specific-number-of-results.md b/postgres/fetch-specific-number-of-results.md new file mode 100644 index 0000000..07d3332 --- /dev/null +++ b/postgres/fetch-specific-number-of-results.md @@ -0,0 +1,42 @@ +# 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/)