Heim >Datenbank >MySQL-Tutorial >Wie implementiert man das Äquivalent der LIMIT-Klausel von MySQL in SQL Server?
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!