Heim >Datenbank >MySQL-Tutorial >Wie implementiert man das Äquivalent einer LIMIT-Klausel in SQL Server?

Wie implementiert man das Äquivalent einer LIMIT-Klausel in SQL Server?

Barbara Streisand
Barbara StreisandOriginal
2025-01-14 09:29:48122Durchsuche

How to Implement the Equivalent of a LIMIT Clause in SQL Server?

Implementieren Sie die entsprechende Funktion der LIMIT-Klausel in SQL Server

Viele SQL-Datenbanken unterstützen die LIMIT-Klausel, um die Anzahl der im Ergebnissatz zurückgegebenen Zeilen zu begrenzen. Obwohl MySQL LIMIT direkt unterstützt, gibt es in SQL Server keine entsprechende Klausel. Allerdings bietet SQL Server mehrere Möglichkeiten, die gleiche Funktionalität zu erreichen.

Methode 1: Verwenden Sie ROW_NUMBER() und BETWEEN

Für SQL Server 2005 und höher können Sie die Funktion ROW_NUMBER() verwenden, um jedem Datensatz im Ergebnissatz eine Zeilennummer zuzuweisen. Verwenden Sie dann den BETWEEN-Operator, um die Ergebnismenge basierend auf Zeilennummern zu filtern.

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

Methode 2: TOP und äußere Abfrage verwenden

Für SQL Server 2000 und frühere Versionen können Sie verschachtelte Abfragen verwenden, die TOP- und ORDER BY-Klauseln kombinieren. Die äußere Abfrage wählt eine angegebene Anzahl von Zeilen aus der inneren Abfrage aus.

<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) ORDER BY Id DESC</code>

Das obige ist der detaillierte Inhalt vonWie implementiert man das Äquivalent einer LIMIT-Klausel in SQL Server?. 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