Select Top

0

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 Klausel LIMIT, um eine begrenzte Anzahl von Datensätzen auszuwählen, während Oracle FETCH FIRST n ROWS ONLY und ROWNUM 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-IDKundennameKontaktnameAddressStadtPostleitzahlLand
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

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;
Nach oben scrollen