SQL Server ROW_NUMBER-Funktion

Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie SQL Server ROW_NUMBER() Funktion zum Zuweisen einer sequentiellen Ganzzahl zu jeder Zeile einer Ergebnismenge.

Einführung in SQL Server ROW_NUMBER () -Funktion

Die ROW_NUMBER() ist eine Fensterfunktion, die jeder Zeile innerhalb der Partition einer Ergebnismenge eine sequentielle Ganzzahl zuweist. Die Zeilennummer beginnt mit 1 für die erste Zeile in jeder Partition.

Das Folgende zeigt die Syntax der Funktion ROW_NUMBER():

Lassen Sie uns Untersuchen Sie die Syntax der Funktion ROW_NUMBER() im Detail.

PARTITION BY

Die PARTITION BY Klausel unterteilt die Ergebnismenge in Partitionen (ein anderer Begriff für Gruppen von Zeilen). Die Funktion ROW_NUMBER() wird auf jede Partition separat angewendet und die Zeilennummer für jede Partition neu initialisiert.

Die Klausel PARTITION BY es ist optional. Wenn Sie es überspringen, behandelt die Funktion ROW_NUMBER() die gesamte Ergebnismenge als einzelne Partition.

ORDER BY

Die ORDER BY -Klausel definiert die logische Reihenfolge der Zeilen in jeder Partition der Ergebnismenge. Die Klausel ORDER BY ist obligatorisch, da die Funktion ROW_NUMBER() auftragsabhängig ist.

SQL Beispiele für Server ROW_NUMBER ()

Wir verwenden die Tabelle sales.customers aus der Beispieldatenbank, um die Funktion ROW_NUMBER() zu demonstrieren

Verwenden von SQL Server ROW_NUMBER () Funktion über eine Ergebnismenge Beispiel

Die folgende Anweisung verwendet die ROW_NUMBER(), um jeder Kundenzeile eine fortlaufende Nummer zuzuweisen:

Hier ist der Teil Ausgabe:

In diesem Beispiel haben wir Die PARTITION BY -Klausel wurde übersprungen. Daher behandelte die ROW_NUMBER() die gesamte Ergebnismenge als einzelne Partition.

Verwenden von SQL Beispiel für Server ROW_NUMBER () über Partitionen

Im folgenden Beispiel wird ROW_NUMBER() verwendet Funktion zum Zuweisen einer sequentiellen Ganzzahl zu jedem Kunden. Es setzt die Nummer zurück, wenn sich die Stadt ändert:

Das folgende Bild zeigt die Teilausgabe:

In diesem Beispiel haben wir die Klausel PARTITION BY verwendet, um die Kunden nach Stadt in Partitionen zu unterteilen. Die Zeilennummer wurde neu initialisiert, als sich die Stadt änderte.

Verwenden von SQL Server ROW_NUMBER () für die Paginierung

Die Funktion ROW_NUMBER() ist nützlich für die Paginierung in Anwendungen. Sie können beispielsweise eine Kundenliste nach Seite anzeigen, wobei jede Seite 10 Zeilen enthält.

Im folgenden Beispiel wird die ROW_NUMBER() verwendet, um Kunden aus Zeile 11 zurückzugeben Dies ist die zweite Seite:

Die Ausgabe lautet wie folgt:

In diesem Beispiel:

  • Zunächst verwendete der CTE die Funktion ROW_NUMBER() zum Zuweisen Jede Zeile in der Ergebnismenge hat eine sequentielle Ganzzahl.
  • Zweitens gab die äußere Abfrage die Zeilen der zweiten Seite zurück, deren Zeilennummer zwischen 11 und 20 liegt.

In diesem Lernprogramm haben Sie gelernt, wie Sie mit der SQL Server-Funktion ROW_NUMBER() jeder Zeile innerhalb einer Partition einer Abfrage eine sequentielle Ganzzahl zuweisen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.