SQL - cláusula TOP, LIMIT ou ROWNUM
O SQL TOP A cláusula é usada para buscar um número TOP N ou registros de X por cento de uma tabela.
Note- Todos os bancos de dados não suportam a cláusula TOP. Por exemplo, o MySQL suporta oLIMIT cláusula para buscar um número limitado de registros enquanto o Oracle usa o ROWNUM comando para buscar um número limitado de registros.
Sintaxe
A sintaxe básica da cláusula TOP com uma instrução SELECT seria a seguinte.
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE [condition]
Exemplo
Considere a tabela CLIENTES com os seguintes 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 |
+----+----------+-----+-----------+----------+
A consulta a seguir é um exemplo no servidor SQL, que buscaria os 3 principais registros da tabela CUSTOMERS.
SQL> SELECT TOP 3 * FROM CUSTOMERS;
Isso produziria o seguinte resultado -
+----+---------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+---------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+---------+-----+-----------+---------+
Se você estiver usando o servidor MySQL, aqui está um exemplo equivalente -
SQL> SELECT * FROM CUSTOMERS
LIMIT 3;
Isso produziria o seguinte resultado -
+----+---------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+---------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+---------+-----+-----------+---------+
Se você estiver usando um servidor Oracle, o bloco de código a seguir terá um exemplo equivalente.
SQL> SELECT * FROM CUSTOMERS
WHERE ROWNUM <= 3;
Isso produziria o seguinte resultado -
+----+---------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+---------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+---------+-----+-----------+---------+