SQL TOP, LIMIT, FETCH FIRST oder ROWNUM-Klausel
Die SQL SELECT TOP-Klausel
Mit der Klausel SELECT TOP wird die Anzahl der zurückzugebenden Datensätze angegeben.
Die Klausel SELECT TOP ist bei großen Tabellen mit Tausenden von Datensätzen nützlich. Die Rückgabe einer großen Anzahl von Datensätzen kann die Leistung beeinträchtigen.
Beispiel
Wählen Sie nur die ersten drei Datensätze der Customers tabelle aus:
SELECT TOP 3 * FROM Customers;
Try it Yourself »
Notiz: Nicht alle Datenbanksysteme unterstützen die SELECT TOP-Klausel. MySQL unterstützt die LIMIT-Klausel, um eine begrenzte Anzahl von Datensätzen auszuwählen, während Oracle FETCH FIRST n ROWS ONLY undROWNUM verwendet.
SQL Server / MS Access Syntax:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
MySQL Syntax:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Oracle 12 Syntax:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;
Ältere Oracle-Syntax:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Ältere Oracle-Syntax (mit ORDER BY):
SELECT *
FROM (SELECT column_name(s) FROM table_name
ORDER BY column_name(s))
WHERE ROWNUM <= number;
Demo-Datenbank
Nachfolgend sehen Sie eine Auswahl aus der in den Beispielen verwendeten Tabelle Customers:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
LIMIT
Die folgende SQL-Anweisung zeigt das entsprechende Beispiel für MySQL:
Beispiel
Wählen Sie die ersten drei Datensätze der Customers tabelle aus:
SELECT * FROM Customers
LIMIT 3;
Try it Yourself »
FETCH FIRST
Die folgende SQL-Anweisung zeigt das entsprechende Beispiel für Oracle:
Beispiel
Wählen Sie die ersten drei Datensätze der Customers tabelle aus:
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
SQL TOP PERCENT Beispiel
Die folgende SQL-Anweisung wählt die ersten 50 % der Datensätze aus der Tabelle „Customers“ aus (für SQL Server/MS Access):
Die folgende SQL-Anweisung zeigt das entsprechende Beispiel für Oracle:
Beispiel
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
Fügen Sie eine WHERE-Klausel hinzu
Die folgende SQL-Anweisung wählt die ersten drei Datensätze aus der Tabelle „Customers“ aus, wobei das Land „Germany“ ist (für SQL Server/MS Access):
Die folgende SQL-Anweisung zeigt das entsprechende Beispiel für MySQL:
Die folgende SQL-Anweisung zeigt das entsprechende Beispiel für Oracle:
Beispiel
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;
Fügen Sie das Schlüsselwort ORDER BY hinzu
Fügen Sie das Schlüsselwort ORDER BY hinzu, wenn Sie das Ergebnis sortieren und die ersten 3 Datensätze des sortierten Ergebnisses zurückgeben möchten.
Für SQL Server und MS Access:
Beispiel
Sortieren Sie das Ergebnis in umgekehrter alphabetischer Reihenfolge nach „CustomerName“ und geben Sie die ersten drei Datensätze zurück:
SELECT TOP 3 * FROM Customers
ORDER BY CustomerName DESC;
Try it Yourself »
Die folgende SQL-Anweisung zeigt das entsprechende Beispiel für MySQL:
Die folgende SQL-Anweisung zeigt das entsprechende Beispiel für Oracle:
Beispiel
SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY;