Die SQL SELECT TOP Anweisung beschränkt die Anzahl der ersten X Zeilen, die ausgegeben werden sollen.

SELECT TOP Wert FROM Tabelle ORDER BY Spalte;
SELECT TOP Wert PERCENT FROM Tabelle ORDER BY Spalte;
SELECT TOP Wert WITH TIES FROM Tabelle ORDER BY Spalte; 
SQL SELECT TOP

SQL SELECT TOP - FROM

SQL SELECT TOP ist insbesondere bei sehr großen Tabellen sinnvoll, um lang andauernde Abfragen zu verkürzen. Zusätzlich zum SELECT TOP sind die Keywords PERCENT und WITH TIES verfügbar.  Es wird in der Regel ein ORDER BY hinzugefügt, um die TOP Werte zu sortieren, bevor sie ausgegeben werden.

Es ist wichtig anzumerken, dass SELECT TOP nicht in allen Datenbanken-Systemen existiert. Dieser Befehl ist für Systeme wie SQL Server und Microsoft Access geeignet. In MySQL und PostegreSQL wird anstelle dieses Befehls LIMIT genutzt und in Oracle ROWNUM.

SQL SELECT TOP - Beispiel

Ein Spiele-Entwickler möchte Highscores in seinem Spiel einfügen. Alle Ergebnisse werden als Zeile gespeichert. Mittlerweile sind mehrere Millionen Zeilen enthalten, wodurch die Ausgabe der Highscores sehr lange dauert. Daher möchte er nur die Top 10 wiedergeben und nutzt dazu folgenden Befehl:

SELECT TOP 10 Username, Punktzahl 
FROM Bestenliste 
ORDER BY Punktzahl DESC; 

SELECT TOP - PERCENT

SELECT TOP x PERCENT liefert die oberen x% der Einträge wieder.

Beispiel: Ein international bekanntes Autohaus möchte die Top 1% ihrer Verkäufer zu einer Feier auf den Malediven einladen. Um herauszufinden, wer zu den Top 1% gehört, nutzt die Personalabteilung folgenden Befehl:

SELECT TOP 1 PERCENT * 
FROM Mitarbeiter 
ORDER BY Umsatz DESC; 

SELECT TOP - WITH TIES

SELECT TOP x WITH TIES fügt Zeilen hinzu, die dem Wert der ausgegeben Zeile entsprechen

Beispiel: Ein Blumenhändler möchte seine teuersten drei Produkte herausfinden. Sollte es mehrere Produkte mit demselben Preis geben, möchte er diese auch ausgegeben bekommen:

SELECT TOP 3 WITH TIES Produkt, Preis 
FROM Produkte 
ORDER BY Preis DESC; 

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!