bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/SQL/SQL Tutorial
SQL•SQL Tutorial

SQL SELECT TOP, LIMIT and FETCH FIRST

The SQL SELECT TOP Clause

The SELECT TOP clause is used to limit the number of records to return.

The SELECT TOP clause is useful on large tables with thousands of records. Returning a large number of records can impact performance.

The following SQL selects only the first 3 records of the "Customers" table:

Example

SELECT TOP 3 * FROM Customers;

Note

Not all database systems support the SELECT TOP clause. MySQL supports the LIMIT clause to select a limited number of records, while Oracle uses FETCH FIRST n ROWS ONLY .

Syntax for SQL Server / MS Access

SELECT TOP number | percent column_name(s) FROM table_name WHERE condition ;

Syntax for MySQL

SELECT column_name(s) FROM table_name WHERE condition LIMIT number ;

Syntax for Oracle 12+

SELECT column_name(s) FROM table_name ORDER BY column_name(s) FETCH FIRST number ROWS ONLY;

Demo Database

Below is a selection from the Customers table used in the examples:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

MySQL - The LIMIT Clause

The following SQL shows the equivalent example for MySQL:

Example

 SELECT * FROM Customers
LIMIT 3;

Oracle - The FETCH FIRST Clause

The following SQL shows the equivalent example for Oracle:

Example

Select the first 3 records of the Customers table:

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

SQL TOP PERCENT Example

Here we will use the SELECT TOP clause with the percent syntax.

The following SQL selects the first 50% of the records from the "Customers" table (for SQL Server/MS Access):

Example

SELECT TOP 50 PERCENT * FROM Customers;

The following SQL shows the equivalent example for Oracle:

Example

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

SELECT TOP with WHERE

The following SQL selects the first three records from the "Customers" table, where Country is "Germany" (for SQL Server/MS Access):

Example

SELECT TOP 3 * FROM Customers
WHERE Country = 'Germany';

The following SQL shows the equivalent example for MySQL:

Example

 SELECT * FROM Customers
WHERE Country = 'Germany'
LIMIT 3;

The following SQL shows the equivalent example for Oracle:

Example

SELECT * FROM Customers
WHERE Country = 'Germany'
FETCH FIRST 3 ROWS ONLY;

SELECT TOP and ORDER BY

Add the ORDER BY keyword when you want to sort the result, and return the first 3 records of the sorted result.

Example

SELECT TOP 3 * FROM Customers
ORDER BY CustomerName DESC;

For SQL Server and MS Access

The following SQL shows the equivalent example for MySQL:

Example

 SELECT * FROM Customers
ORDER BY CustomerName DESC
LIMIT 3;

The following SQL shows the equivalent example for Oracle:

Example

SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY;

Previous

SQL DELETE Statement

Next

SQL Aggregate Functions

This chapter

Overview
46

Lessons

115m

Read time

1. SQL Tutorial2. Introduction to SQL3. SQL Syntax4. SQL SELECT Statement5. SQL SELECT DISTINCT Statement6. SQL WHERE Clause7. SQL ORDER BY Keyword8. SQL AND Operator9. SQL OR Operator10. SQL NOT Operator11. SQL INSERT INTO Statement12. SQL NULL Values13. SQL UPDATE Statement14. SQL DELETE Statement15. SQL SELECT TOP, LIMIT and FETCH FIRST16. SQL Aggregate Functions17. SQL MIN() F unction18. SQL MAX() Function19. SQL COUNT() Function20. SQL SUM() Function21. SQL AVG() Function22. SQL LIKE Operator23. SQL Wildcards24. SQL IN Operator25. SQL BETWEEN Operator26. SQL Aliases27. SQL Joins28. SQL INNER JOIN29. SQL LEFT JOIN30. SQL RIGHT JOIN31. SQL FULL JOIN32. SQL Self Join33. SQL UNION Operator34. SQL UNION ALL Operator35. SQL GROUP BY Statement36. SQL HAVING Clause37. SQL EXISTS Operator38. SQL ANY Operator39. SQL ALL Operator40. SQL SELECT INTO Statement41. SQL INSERT INTO SELECT Statement42. SQL CASE Expression43. SQL NULL Functions44. SQL Stored Procedures45. SQL Comments46. SQL Operators

On this page

The SQL SELECT TOP ClauseSyntax for SQL Server / MS AccessSyntax for MySQLSyntax for Oracle 12+Demo DatabaseMySQL - The LIMIT ClauseOracle - The FETCH FIRST ClauseSQL TOP PERCENT ExampleSELECT TOP with WHERESELECT TOP and ORDER BY