SQL - TOP-, LIMIT- oder ROWNUM-Klausel

Die SQL TOP Klausel wird verwendet, um eine TOP N-Zahl oder X-Prozent-Datensätze aus einer Tabelle abzurufen.

Note- Alle Datenbanken unterstützen die TOP-Klausel nicht. Zum Beispiel unterstützt MySQL dasLIMIT Klausel zum Abrufen einer begrenzten Anzahl von Datensätzen, während Oracle die verwendet ROWNUM Befehl zum Abrufen einer begrenzten Anzahl von Datensätzen.

Syntax

Die grundlegende Syntax der TOP-Klausel mit einer SELECT-Anweisung lautet wie folgt.

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

Beispiel

Betrachten Sie die Tabelle CUSTOMERS mit den folgenden Datensätzen:

+----+----------+-----+-----------+----------+
| 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 |
+----+----------+-----+-----------+----------+

Die folgende Abfrage ist ein Beispiel auf dem SQL Server, mit dem die drei wichtigsten Datensätze aus der Tabelle CUSTOMERS abgerufen werden.

SQL> SELECT TOP 3 * FROM CUSTOMERS;

Dies würde das folgende Ergebnis erzeugen -

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

Wenn Sie einen MySQL-Server verwenden, finden Sie hier ein gleichwertiges Beispiel:

SQL> SELECT * FROM CUSTOMERS
LIMIT 3;

Dies würde das folgende Ergebnis erzeugen -

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

Wenn Sie einen Oracle-Server verwenden, enthält der folgende Codeblock ein gleichwertiges Beispiel.

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

Dies würde das folgende Ergebnis erzeugen -

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