Loading lessons...
SELECT TOP / LIMIT
SELECT TOP / LIMIT
Sometimes you only want the first few rows of a result. Different databases use different keywords for this.
MySQL / PostgreSQL / SQLite: LIMIT
SELECT * FROM Customers
LIMIT 3;
Returns only the first 3 rows.
SQL Server / MS Access: SELECT TOP
SELECT TOP 3 * FROM Customers;
Same idea: only 3 rows.
Oracle: ROWNUM
SELECT * FROM Customers
WHERE ROWNUM <= 3;
Combine with ORDER BY
To get the "top 3" by value, always sort first:
SELECT * FROM Products
ORDER BY Price DESC
LIMIT 3;
This returns the 3 most expensive products.
Why order matters
SELECT * FROM Products
LIMIT 3
ORDER BY Price DESC;
The rows above are picked before sorting, so the result is wrong. Always put ORDER BY before LIMIT.
TL;DR
- MySQL/PostgreSQL/SQLite:
LIMIT n. - SQL Server:
SELECT TOP n. - Oracle:
ROWNUM <= n. - Sort with ORDER BY first, then limit.