Eine kurze Frage. Angenommen, ich habe die folgenden zwei Fragen:
SELECT TOP 2 * FROM Persons;
und
SELECT * FROM Persons limit 2;
Ich möchte den Unterschied zwischen der Ausführung der obigen 2 Abfragen wissen. Grundsätzlich möchte ich wissen, wann ich das limit
Schlüsselwort verwenden soll und wann es angemessen ist, das top
Schlüsselwort zu verwenden. Wie gibt die Datenbank Ergebnisse basierend auf den obigen 2 Abfragen zurück?
Antworten:
Wenn Sie SQL Server verwenden, verwenden
TOP
Sie, wenn Sie verwendenMySQL
oderPostgres
verwendenLimit
!AFAIK Es gibt derzeit kein Produkt, das beide unterstützt. Hier ist eine Liste der aktuellen Implementierungen und hier eine andere (deckt mehr Produkte ab, aber weniger detailliert).
quelle
Wie in meinem Kommentar zu Martin Smiths Antwort oben angegeben, gibt es Produkte, die sowohl
LIMIT
undTOP
als auch unterstützen (wie Sie hier sehen können ). Der Unterschied besteht darin, dassTOP
nur die ersten n Datensätze ausgewählt werden,LIMIT
die Definition eines Versatzes jedoch das Abrufen eines bestimmten Datensatzbereichs ermöglicht:SELECT * FROM ... LIMIT 5 OFFSET 10
Diese Anweisung wählt die ersten 5 Datensätze aus, nachdem 10 Datensätze übersprungen wurden. Dies ist mit nicht möglich
TOP
.Das Beispiel, das ich gepostet habe, wird nur mit dem oben verlinkten DBS verglichen. Ich habe aus Zeitgründen keinen SQL-Standard überprüft.
quelle
TOP & LIMIT arbeiten beide an Amazon Redshift
quelle
limit
funktioniert unter MySQL und PostgreSQL,top
funktioniert unter SQL Server,rownum
funktioniert unter Oracle.quelle
Es gibt keinen Unterschied. Die Schlüsselwörter
TOP
undLIMIT
funktionieren identisch und geben dasselbe zurück.quelle
Ein großer Fehler ist, dass LIMIT langsam ist, weil select voll ist und der Datenbankserver nur begrenzte Daten zurückgibt. Wenn es möglich ist, an TOP gewöhnt.
quelle