Replikation von MySQLs LIMIT in SQL Server
Die LIMIT
-Klausel von MySQL schränkt die Anzahl der zurückgegebenen Zeilen ein. SQL Server erreicht dies mithilfe der TOP
-Klausel. So erhalten Sie die gleiche Funktionalität:
SQL Server 2005 und höher
Für SQL Server 2005 und nachfolgende Versionen besteht ein gängiger Ansatz in der Verwendung von ROW_NUMBER()
:
<code class="language-sql">SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY Id) as RowNum FROM OrderedOrders ) as RankedOrders WHERE RowNum BETWEEN 10 AND 20;</code>
Dadurch wird jeder Zeile ein eindeutiger Rang zugewiesen und dann basierend auf diesem Rang gefiltert.
SQL Server 2000 und früher
In älteren Versionen (SQL Server 2000 und niedriger) ist eine verschachtelte SELECT
-Anweisung erforderlich:
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) as SubQuery ORDER BY Id DESC;</code>
Dadurch werden zuerst die obersten 20 Zeilen und dann aus dieser Teilmenge die obersten 10 ausgewählt. Beachten Sie die Bedeutung der sekundären ORDER BY
-Klausel für konsistente Ergebnisse. Die Reihenfolge in beiden Abfragen ist entscheidend für den Erhalt der gewünschten Zeilen.
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!