Heim >Datenbank >MySQL-Tutorial >Wie implementiert man die Paginierung in SQL Server mithilfe von OFFSET und FETCH?

Wie implementiert man die Paginierung in SQL Server mithilfe von OFFSET und FETCH?

DDD
DDDOriginal
2025-01-18 18:26:16696Durchsuche

How to Implement Pagination in SQL Server Using OFFSET and FETCH?

Verwenden Sie OFFSET und FETCH, um Paging in SQL Server zu implementieren

SQL Server hat kein direktes Äquivalent zur LIMIT-Klausel in MySQL oder SQL. Es bietet jedoch eine alternative Möglichkeit, mithilfe der Klauseln OFFSET und FETCH eine ähnliche Funktionalität zu erreichen.

OFFSET und FETCH

Um die Paginierung mit OFFSET und FETCH zu implementieren, führen Sie die folgenden Schritte aus:

  1. Daten sortieren: Verwenden Sie die ORDER BY-Klausel, um die Daten in der gewünschten Reihenfolge zu sortieren.
  2. Zeilen mit OFFSET überspringen: Die OFFSET-Klausel gibt an, wie viele Zeilen am Anfang der Ergebnismenge übersprungen werden sollen.
  3. Begrenzen Sie die Anzahl der Zeilen mit FETCH: Die FETCH-Klausel gibt die Anzahl der Zeilen an, die nach dem Überspringen von versetzten Zeilen zurückgegeben werden sollen.

Beispiel:

<code class="language-sql">SELECT *
FROM sys.databases
ORDER BY name
OFFSET 5 ROWS
FETCH NEXT 5 ROWS ONLY;</code>

Diese Abfrage überspringt die ersten 5 Zeilen (OFFSET 5 ROWS) und gibt die nächsten 5 Zeilen zurück (FETCH NEXT 5 ROWS ONLY).

Alternativen für ältere SQL Server-Versionen:

Für SQL Server-Versionen vor 2012 gibt es eine weniger effiziente Alternative:

  • Verwenden Sie TOP und ORDER BY: Dies kann verwirrend sein und bei der Verwendung von Indizes möglicherweise die Paginierung nicht korrekt verarbeiten.
  • Verwenden von ROW_NUMBER() und WHERE: Dazu gehört das Erstellen einer temporären Tabelle mit einer Zeilennummernspalte und das Filtern basierend auf der Zeilennummer.

Der Grund für das Fehlen von LIMIT

Die LIMIT-Klausel fehlt in SQL Server hauptsächlich aus historischen und architektonischen Gründen. Microsoft hat SQL Server mit Schwerpunkt auf hoher Leistung und Datenintegrität entwickelt, und die Mechanismen OFFSET und FETCH gelten als effizienter und vielseitiger für Paging. Allerdings wurde SQL Server in neueren Versionen aktualisiert und enthält nun ROW_NUMBER() und andere Optimierungen, wodurch OFFSET und FETCH besser mit LIMIT vergleichbar sind.

Das obige ist der detaillierte Inhalt vonWie implementiert man die Paginierung in SQL Server mithilfe von OFFSET und FETCH?. 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