TOP

SQL TOP, LIMIT, FETCH FIRST und ROWNUM

SQL SELECT TOP Beschreibung

Der Ausdruck SELECT TOP wird verwendet, um die Anzahl der auszuwählenden Datensätze anzugeben.

SQL SELECT TOP ist für große Tabellen mit Tausenden von Datensätzen nützlich, da die Rückgabe einer großen Anzahl von Datensätzen die Systemleistung beeinträchtigen kann.


Nicht alle Datenbanksysteme unterstützen den Ausdruck SELECT TOP. MySQL unterstützt den Ausdruck 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

Veraltete Oracle-Syntax:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

Veraltete Oracle-Syntax (mit ORDER BY):

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number

Demonstrationsdatenbank

Das Folgende ist ein Beispiel aus der Tabelle „Customers“ („Kunden“) der Datenbank „Northwind“:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL TOP, LIMIT und FETCH FIRST Beispiele

Die folgende SQL-Anweisung wählt die ersten drei Datensätze aus der Tabelle „Customers“ aus (für SQL Server/MS Access):

SELECT TOP 3 * 
FROM Customers

Die folgende SQL-Anweisung zeigt ein entsprechendes Beispiel für MySQL:

Run SQLSELECT * 
FROM Customers 
LIMIT 3

Die folgende SQL-Anweisung zeigt ein entsprechendes Beispiel für Oracle:

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):

SELECT TOP 50 PERCENT * 
FROM Customers

Die folgende SQL-Anweisung zeigt ein entsprechendes Beispiel für Oracle:

SELECT * 
FROM Customers 
FETCH FIRST 50 PERCENT ROWS ONLY

Verwendung des WHERE-Ausdrucks

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):

SELECT TOP 3 * 
FROM Customers 
WHERE Country = 'Germany'

Die folgende SQL-Anweisung zeigt ein entsprechendes Beispiel für MySQL:

Run SQLSELECT * 
FROM Customers 
WHERE Country = 'Germany' 
LIMIT 3

Die folgende SQL-Anweisung zeigt ein entsprechendes Beispiel für Oracle:

SELECT * 
FROM Customers 
WHERE Country = 'Germany' 
FETCH FIRST 3 ROWS ONLY