Zurück zu: SQL Tutorial
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 3 Datensätze der Kundentabelle aus:
SELECT TOP 3 * FROM Customers;
Hinweis: Nicht alle Datenbanksysteme unterstützen die Klausel
SELECT TOP
. MySQL unterstützt die KlauselLIMIT
, um eine begrenzte Anzahl von Datensätzen auszuwählen, während OracleFETCH 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;
Older Oracle Syntax:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Older Oracle Syntax (with 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 Kundentabelle:
Kunden-ID | Kundenname | Kontaktname | Address | Stadt | Postleitzahl | Land |
---|---|---|---|---|---|---|
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 3 Datensätze der Kundentabelle aus:
SELECT * FROM Customers
LIMIT 3;
FETCH FIRST
Die folgende SQL Anweisung zeigt das entsprechende Beispiel für Oracle:
Beispiel
Wählen Sie die ersten 3 Datensätze der Kundentabelle 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 „Kunden“ aus (für SQL Server/MS Access):
Beispiel
SELECT TOP 50 PERCENT * FROM Customers;
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 „Kunden“ aus, wobei das Land „Deutschland“ ist (für SQL Server/MS Access):
Beispiel
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';
Die folgende SQL Anweisung zeigt das entsprechende Beispiel für MySQL:
Beispiel
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
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;
Die folgende SQL Anweisung zeigt das entsprechende Beispiel für MySQL:
Beispiel
SELECT * FROM Customers
ORDER BY CustomerName DESC
LIMIT 3;
Die folgende SQL Anweisung zeigt das entsprechende Beispiel für Oracle:
Beispiel
SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY;