SQL verwendet die Funktion ROW_NUMBER() OVER, um eine Sequenznummer zu generieren

SQL verwendet die Funktion ROW_NUMBER() OVER, um eine Sequenznummer zu generieren

Syntax: ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
Einfach ausgedrückt beginnt ROW_NUMBER() bei 1 und gibt für jeden gruppierten Datensatz eine Nummer zurück. Dabei sortiert ROW_NUMBER() OVER (ORDER BY CYLH DESC) zuerst die xlh-Spalte in absteigender Reihenfolge und gibt dann nach der absteigenden Reihenfolge eine Seriennummer für jeden CYLH-Datensatz zurück.

Beispiel:

Analyse: ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) PARTITION BY COL1 ORDER BY COL2 ) bedeutet Gruppierung nach COL1 und Sortierung nach COL2 innerhalb der Gruppe. Der von dieser Funktion berechnete Wert stellt die Sequenznummer nach der Sortierung innerhalb jeder Gruppe dar (kontinuierlich und eindeutig innerhalb der Gruppe).

Kann auch so verwendet werden: ROW_NUMBER() OVER (ORDER BY COL2)

例子:

Erstellen einer Testtabelle und Einfügen von Testdaten

 Tabelle erstellen Testzeilennummer 01 (
       CMZH varchar(10) nicht null,
       CYLH varchar(10) null,
       MJE Geld null,
);


INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES (2106000011,20281997,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000010,20281996,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000008,20281995,0.00)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000006,20281994,9.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000004,20281993,5.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000001,20281992,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000002,20281992,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000007,20217280,0.00)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000009,20172458,5.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000005,20121813,0.00)


Führen Sie das Skript aus, um automatisch Zeilennummern zu generieren und nach CYLH zu sortieren (wischen Sie, um den Code anzuzeigen).

Wählen Sie ROW_NUMBER() über (ORDER BY CYLH DESC) als ROWNUM, * von TEST_ROW_NUMBER_01


Die Ergebnisse sind wie folgt:

Hinweis: Bei der Verwendung von Fensterfunktionen wie over werden group by und Sortierung in over später ausgeführt als die Ausführung von „ where , group by, order by “.

Dies ist das Ende dieses Artikels über die Verwendung der SQL ROW_NUMBER() OVER-Funktion zum Generieren von Seriennummern. Weitere Informationen zur Verwendung der SQL ROW_NUMBER() OVER zum Generieren von Seriennummern finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vergleich zweier Methoden zum Parsen von Datenbank-Paging (Vergleich zwischen row_number()over() und top)
  • SQL Server generiert automatisch eine Seriennummer mit einem Datum plus einer Nummer

<<:  Was sind die Attribute des JSscript-Tags

>>:  Einführung und Verwendung von fünf Controllern in K8S

Artikel empfehlen

Detaillierte Erklärung der Standardwerte von Breite und Höhe in CSS: auto und %

abschließend % der Breite: definiert die prozentu...

Einige Vorschläge zur Gewährleistung der MySQL-Datensicherheit

Daten sind das wichtigste Kapital eines Unternehm...

vue+echarts realisiert den Flusseffekt der China-Karte (detaillierte Schritte)

@vue+echarts realisiert den Flusseffekt der China...

Lösung für das MySQL Master-Slave-Verzögerungsproblem

Heute werden wir uns ansehen, warum es zu Master-...

Befehle zum Suchen der Domänen-IP-Adresse im Linux-Terminal (fünf Methoden)

In diesem Tutorial wird erklärt, wie Sie die IP-A...

Hinweise zur Adresszuordnung von Gerätetreibern im Linux-Kernel

#include <asm/io.h> #define ioremap(Cookie,...

Die Verknüpfungsmethode zwischen Menü und Registerkarte von vue+iview

Vue+iview-Menü und Tab-Verknüpfung Ich entwickle ...

Erweiterte MySQL-Datenbankabfrage und Mehrtabellenabfrage

MySQL-Abfrage für mehrere Tabellen Hinzufügen ein...

Installationsmethode für komprimierte MySQL 5.6-Pakete

Es gibt zwei Installationsmethoden für MySQL: MSI...

Dynamische SQL-Anweisungsanalyse in Mybatis

Dieser Artikel stellt hauptsächlich die dynamisch...