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

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.21 winx64

Dieser Artikel fasst die Hinweise zur Installatio...

CentOS 7.x Docker verwendet die Overlay2-Speichermethode

Bearbeiten Sie /etc/docker/daemon.json und fügen ...

Konvertieren Sie ausgeschnittene PSD-Bilder in das Div+CSS-Format

Beispiel für das Zuschneiden einer Webseite von P...

So verbinden Sie JDBC mit MySQL 5.7

1. Bereiten Sie zunächst die MySQL- und Eclipse-U...

JS implementiert Anforderungsdispatcher

Inhaltsverzeichnis Abstraktion und Wiederverwendu...

Dieser Artikel zeigt Ihnen, wie Sie CSS wie JS-Module importieren

Inhaltsverzeichnis Vorwort Was sind erstellbare S...

So verwenden Sie JSONP in Vue

Inhaltsverzeichnis 1. Einleitung 2. Installation ...

Zusammenfassung der Ereignisse, die Browser registrieren können

HTML-Ereignisliste Allgemeine Ereignisse: onClick ...

MySQL-Initialisierungskennwortvorgang unter Mac

Eine einfache Aufzeichnung der Datenbank-Startpro...

Lösung für „Keine Eingabedatei angegeben“ in nginx+php

Heute ist in meiner lokalen Entwicklungsumgebung ...

Die Einhandregel von WEB 2.0

<br />Mein vorheriger Artikel über CSS wurde...

Ein nützliches mobiles Scrolling-Plugin BetterScroll

Inhaltsverzeichnis Machen Sie das Scrollen flüssi...