SQL Select Top Clause



SQL SELECT TOP Clause :

Suppose we want to fetch only some limited records from the record set then we can use these top clause. It is not supported by all the databases.

We are having different alternate syntaxes for different DB’s

Database Vendor Clause Supported
SQL Server TOP Clause
MS Access Syntax TOP Clause
MySQL LIMIT
Oracle ROWNUM

Demo Database :

Consider the following demo table -

+----+----------+-----+-----------+----------+
| ID | ENAME    | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Kota      |  2000.00 |
|  2 | Raj      |  23 | Delhi     |  1500.00 |
|  3 | Anand    |  21 | Karachi   |  2000.00 |
|  4 | Saurabh  |  25 | Mumbai    |  6500.00 |
|  5 | Poonam   |  29 | Bhopal    |  8500.00 |
|  6 | Komal    |  23 | Pune      |  4500.00 |
|  7 | Omkar    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

A. Top Clause

Syntax of the clause is as below -

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

Consider below query on demo database -

SQL> SELECT TOP 3 * FROM Employee;

will result into

+----+----------+-----+-----------+----------+
| ID | ENAME    | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Kota      |  2000.00 |
|  2 | Raj      |  23 | Delhi     |  1500.00 |
|  3 | Anand    |  21 | Karachi   |  2000.00 |
+----+----------+-----+-----------+----------+

B. LIMIT in MySQL

Syntax for using LIMIT is as below -

SQL> SELECT column_name(s)
FROM table_name
LIMIT number;

Consider below query on demo database -

SQL> SELECT * FROM Employee
LIMIT 3;

will result into

+----+----------+-----+-----------+----------+
| ID | ENAME    | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Kota      |  2000.00 |
|  2 | Raj      |  23 | Delhi     |  1500.00 |
|  3 | Anand    |  21 | Karachi   |  2000.00 |
+----+----------+-----+-----------+----------+

C. ROWNUM in Oracle

Syntax for using ROWNUM is as below -

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Consider below query on demo database -

SQL> SELECT * FROM Employee
WHERE ROWNUM <= 3;

will result into

+----+----------+-----+-----------+----------+
| ID | ENAME    | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Kota      |  2000.00 |
|  2 | Raj      |  23 | Delhi     |  1500.00 |
|  3 | Anand    |  21 | Karachi   |  2000.00 |
+----+----------+-----+-----------+----------+