Heim >Datenbank >MySQL-Tutorial >Wie beschränke ich die von einer SQL-Abfrage in SQL Server zurückgegebenen Zeilen?
LIMIT-Klausel in SQL Server: Implementierung und Alternativen
Viele Entwickler sind es gewohnt, die in MySQL und anderen Datenbankverwaltungssystemen häufig verwendete LIMIT-Klausel zu verwenden, um die Anzahl der von einer SQL-Abfrage zurückgegebenen Zeilen zu begrenzen. Allerdings unterstützt SQL Server die LIMIT-Klausel nicht nativ. In diesem Artikel werden alternative Möglichkeiten untersucht, um dieselbe Funktionalität in SQL Server zu erreichen.
Methode 1: ROW_NUMBER()-Funktion für SQL Server 2005 und höher
Für SQL Server 2005 und höher können Sie die Funktion ROW_NUMBER() verwenden, um die LIMIT-Klausel zu simulieren. Das folgende Beispiel veranschaulicht diesen Ansatz:
<code class="language-sql">USE AdventureWorks; GO WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber' FROM Sales.SalesOrderHeader ) SELECT * FROM OrderedOrders WHERE RowNumber BETWEEN 10 AND 20;</code>
Diese Abfrage gibt Zeilen mit einer SalesOrderID zwischen 10 und 20 zurück, wodurch die Ergebnismenge effektiv eingeschränkt wird.
Methode 2: Verschachtelte Abfrage für SQL Server 2000 und niedriger
Für SQL Server 2000 und niedriger können Sie die verschachtelte Abfragemethode verwenden:
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) ORDER BY Id DESC</code>
Diese Abfrage ruft die ersten 10 Zeilen aus einer inneren Unterabfrage ab, die die ersten 20 Zeilen sortiert nach ID zurückgibt. Durch Umkehren der Sortierreihenfolge in der äußeren Unterabfrage sind das Endergebnis die obersten 10 Zeilen in aufsteigender Reihenfolge nach ID.
Das obige ist der detaillierte Inhalt vonWie beschränke ich die von einer SQL-Abfrage in SQL Server zurückgegebenen Zeilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!