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 - 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;