The SQL TOP clause used to limit the number of rows returned by a query. It is often used when you want to retrieve a specific number of rows from a table that meet certain criteria, or when you want to retrieve the first N rows of a result set. SQL TOP is supported by various database management systems, although the syntax may differ slightly between them.

The TOP clause is commonly used in Microsoft SQL Server and Sybase, while other database systems like MySQL and PostgreSQL use different syntax for achieving similar results, such as LIMIT or FETCH FIRST.

Basic syntax

The basic syntax of the TOP clause varies slightly between database management systems, but the general structure is as follows:

SELECT TOP (number_of_rows) column1, column2, ...
FROM table_name
WHERE condition;

Here’s a breakdown of the components:

number_of_rows: This specifies the maximum number of rows to be returned by the query. It can be a numeric value or an expression that evaluates to a numeric value. For example, if you want to retrieve the first 10 rows, you would use SELECT TOP 10.

column1, column2, …: These are the columns you want to retrieve from the table. You can specify one or more columns separated by commas.

table_name: This is the name of the table from which you want to retrieve data.

WHERE condition: This is an optional clause that allows you to filter the rows based on a specific condition. Rows that meet the condition will be included in the result set.


Here’s an example of how you might use the TOP clause in a SQL query:

SELECT TOP 5 FirstName, LastName
FROM Employees

In this example, the query retrieves the first 5 rows from the “Employees” table, ordered by the “Salary” column in descending order. As a result, you would get the names of the top 5 highest-paid employees in the organization.

It’s important to note that the use of the TOP clause is not standardized across all database systems, so if you’re working with a different database system like MySQL or PostgreSQL, you may need to use their equivalent syntax (LIMIT or FETCH FIRST) to achieve the same result. However, the concept of limiting the number of rows returned in a query remains consistent across various database systems.