SQL - Cláusula TOP, LIMIT o ROWNUM

El SQL TOP La cláusula se utiliza para obtener un número TOP N o registros de X por ciento de una tabla.

Note- Todas las bases de datos no admiten la cláusula TOP. Por ejemplo, MySQL es compatible conLIMIT cláusula para obtener un número limitado de registros mientras Oracle utiliza la ROWNUM comando para buscar un número limitado de registros.

Sintaxis

La sintaxis básica de la cláusula TOP con una instrucción SELECT sería la siguiente.

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

Ejemplo

Considere la tabla CLIENTES que tiene los siguientes registros:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

La siguiente consulta es un ejemplo en el servidor SQL, que buscaría los 3 registros principales de la tabla CUSTOMERS.

SQL> SELECT TOP 3 * FROM CUSTOMERS;

Esto produciría el siguiente resultado:

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+

Si está utilizando el servidor MySQL, aquí hay un ejemplo equivalente:

SQL> SELECT * FROM CUSTOMERS
LIMIT 3;

Esto produciría el siguiente resultado:

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+

Si está utilizando un servidor Oracle, el siguiente bloque de código tiene un ejemplo equivalente.

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

Esto produciría el siguiente resultado:

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+