Einschränken von Ergebnismengen in SQL Server-Abfragen
SQL Server bietet mehrere Methoden zur Begrenzung der Anzahl der von einer Abfrage zurückgegebenen Zeilen und spiegelt die Funktionalität der LIMIT
-Klausel in MySQL wider. Schauen wir uns diese Techniken an:
SQL Server 2005 und höher:
Die ROW_NUMBER()
-Funktion bietet eine elegante Lösung für Versionen ab 2005:
<code class="language-sql">USE AdventureWorks; GO WITH NumberedOrders AS ( SELECT SalesOrderID, OrderDate, ROW_NUMBER() OVER (ORDER BY OrderDate) AS RowNum FROM Sales.SalesOrderHeader ) SELECT * FROM NumberedOrders WHERE RowNum BETWEEN 10 AND 20;</code>
Dadurch wird jeder Zeile eine eindeutige Zeilennummer zugewiesen, wodurch die Auswahl eines bestimmten Zeilenbereichs ermöglicht wird.
SQL Server 2000 und früher:
Für ältere Versionen (2000 und niedriger) ist eine verschachtelte Abfrage mit der TOP
-Klausel erforderlich:
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) AS LimitedSet ORDER BY Id DESC;</code>
Diese verschachtelte Abfrage ruft zunächst die obersten 20 Zeilen ab, sortiert nach Id
, und dann wählt die äußere Abfrage die obersten 10 aus dieser Teilmenge aus, wodurch die gewünschte Zeilenbeschränkung erreicht wird.
Durch die Verwendung von ROW_NUMBER()
(für neuere Versionen) oder der TOP
-Klausel mit verschachtelten Abfragen (für ältere Versionen) können Sie die Anzahl der in Ihren SQL Server-Abfragen zurückgegebenen Zeilen effektiv verwalten und so das Verhalten von Klausel.LIMIT
Das obige ist der detaillierte Inhalt vonWie implementiert man die LIMIT-Funktionalität in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!