bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/SQL/SQL Tutorial
SQL•SQL Tutorial

SQL SELECT TOP, LIMIT and FETCH FIRST

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind SQL SELECT TOP, LIMIT and FETCH FIRST?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ TOP 3 * FROM Customers;
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Syntax for Oracle 12+
Syntax for SQL Server / MS Access
The SQL SELECT TOP Clause

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