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

Wie implementiert man das Äquivalent der LIMIT-Klausel von MySQL in SQL Server?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-14 07:16:43989Durchsuche

How to Implement SQL Server's Equivalent of MySQL's LIMIT Clause?

Limit-Funktionalität in SQL Server erreichen

SQL Server bietet mehrere Möglichkeiten, die Anzahl der von einer Abfrage zurückgegebenen Zeilen zu beschränken und spiegelt dabei die LIMIT-Klausel von MySQL wider.

SQL Server 2005 und nachfolgende Versionen

Ab SQL Server 2005 bietet die Funktion ROW_NUMBER() innerhalb eines Common Table Expression (CTE) eine saubere Lösung. Hier ist eine Illustration:

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

Ältere SQL Server-Versionen (2000 und früher)

Für Versionen vor SQL Server 2005 ist ein kombinierter Ansatz mit TOP und ORDER BY erforderlich:

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

Diese Technik ruft zunächst die obersten 20 Zeilen ab und wählt dann die obersten 10 aus dieser Teilmenge aus, wodurch effektiv eine bereichsbasierte Begrenzung erreicht wird. Beachten Sie, dass das verschachtelte ORDER BY für korrekte Ergebnisse entscheidend ist. Ersetzen Sie YourTable und Id durch Ihre tatsächliche Tabelle und Bestellspalte.

Das obige ist der detaillierte Inhalt vonWie implementiert man das Äquivalent der LIMIT-Klausel von MySQL 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