Heim >Datenbank >MySQL-Tutorial >Wie beschränke ich die von einer SQL-Abfrage in SQL Server zurückgegebenen Zeilen?

Wie beschränke ich die von einer SQL-Abfrage in SQL Server zurückgegebenen Zeilen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-14 08:55:46703Durchsuche

How to Limit Rows Returned by a SQL Query in SQL Server?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn