LIMIT & OFFSET

Cap the number of rows returned — and paginate through results

Beginner 8 minLIMITOFFSETpagination

Limiting Results

LIMIT caps how many rows your query returns. LIMIT 10 gives you at most 10 rows, even from a table with millions of records. Combined with ORDER BY, it becomes the foundation for top-N queries. Here's what to know:

Top-N queriesORDER BY price DESC LIMIT 5 gives you the 5 most expensive items. Without ORDER BY first, LIMIT just returns 5 arbitrary rows — almost never what you actually want.
OFFSET skips rowsLIMIT 10 OFFSET 20 skips the first 20 rows and returns rows 21 through 30. This is the foundation of pagination — showing results page by page in web applications and APIs.
LIMIT without ORDER BY is randomLIMIT 5 alone gives you 5 arbitrary rows with no guaranteed order. Always combine LIMIT with ORDER BY when specific rows matter to your result.
Dialect differencesLIMIT is standard in SQLite, PostgreSQL, and MySQL. SQL Server uses SELECT TOP 10 ... or OFFSET n ROWS FETCH NEXT m ROWS ONLY. Oracle (12c+) and ANSI SQL use FETCH FIRST 10 ROWS ONLY. The concept is identical — only the syntax varies.
Knowledge Canvas

How LIMIT Works

Cap the number of rows returned

  • LIMIT runs after ORDER BY — last in execution order
  • LIMIT n returns at most n rows
  • OFFSET skips rows before returning: pagination
  • Without ORDER BY, which rows you get is unpredictable

LIMIT Gotchas

Watch out for these

  • LIMIT without ORDER BY = random subset each time
  • OFFSET scales poorly — row 1,000,000 still reads 999,999 rows
  • Syntax varies: MySQL LIMIT, SQL Server TOP, Oracle FETCH FIRST
  • LIMIT 0 returns zero rows but still validates the query

Common Patterns

Where LIMIT shines

  • Top-N: ORDER BY revenue DESC LIMIT 10
  • Pagination: LIMIT 20 OFFSET 40 (page 3)
  • Sampling: ORDER BY RANDOM() LIMIT 5
  • Existence check: LIMIT 1 for quick lookups

LIMIT Across Databases

Syntax differences to know

MySQL / SQLite / PostgreSQL
LIMIT n OFFSET m
SQL Server
TOP n (or OFFSET FETCH)
Oracle
FETCH FIRST n ROWS ONLY
Standard SQL
FETCH FIRST / OFFSET
Syntax
Syntax Template
1SELECT
2 columns
3FROM table
4ORDER BY
5 column
6LIMIT count
7OFFSET skip;
LIMIT nReturn at most n rows
OFFSET nSkip the first n rows before returning
Sample Data
products
10 rows
nameprice
Wireless Mouse24.99
Office Desk189
LED Desk Lamp45.5
USB-C Cable12.99
Bluetooth Speaker79
Office Chair95
Coffee Maker89.99
Notebook Set8.5
Wireless Headphones159
Standing Desk425

Worked Example

Show the 3 most expensive products.

SQL
1SELECT
2 name,
3 price
4FROM products
5ORDER BY
6 price DESC
7LIMIT 3;
First we sort all products by price descending. Then LIMIT 3 returns only the first three rows from that sorted list — the three most expensive products.
Output
3 rows
nameprice
Standing Desk425
Office Desk189
Wireless Headphones159

Key Concepts

1LIMIT without ORDER BY gives you random rows
2OFFSET starts counting from 0 — OFFSET 20 skips rows 1–20
3Page N of size S: LIMIT S OFFSET (N-1)*S
4Some databases use TOP or FETCH FIRST instead of LIMIT

Pro Tip

Large tables return millions of rows. LIMIT keeps results manageable and makes top-N queries possible.

When to Use

Paginated web pages, "Top 10" lists, previewing table contents, sampling data during development.

Challenge

Solve the problem below

Find the 3 cheapest products. Show their name and price.

Your Query