„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie aktualisiere ich NULL-Werte in einer Tabelle mit Daten aus Zeilen mit demselben Namen?

Wie aktualisiere ich NULL-Werte in einer Tabelle mit Daten aus Zeilen mit demselben Namen?

Veröffentlicht am 18.11.2024
Durchsuche:575

How to Update NULL Values in a Table with Data from Rows Sharing the Same Name?

Aktualisieren von Zeilen mit Daten von gleichgeordneten Tabellen

Stellen Sie sich eine Tabelle mit einer Struktur vor, die dieser ähnelt:

IDNAMEWERT
1TestVALUE1
2Test2VALUE2
1Test2NULL
4TestNULL
1Test3VALUE3

Ihre Aufgabe besteht darin, die NULL-„VALUE“-Zellen mit Daten aus anderen Zeilen zu füllen, die denselben „NAME“ tragen. (d. h. „Test“ und „Test2“ sollten Werte von ihren Vorgängern erben). Das gewünschte Ergebnis ist:

IDNAMEVALUE
1TestVALUE1
2Test2VALUE2
1Test2VALUE2
4TestVALUE1
1Test3VALUE3

Die Herausforderung besteht darin, Zeilen innerhalb derselben zu referenzieren Tabelle, die einen bestimmten „NAME“-Wert gemeinsam haben. Die Lösung beinhaltet die Verwendung einer JOIN-Anweisung:

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME

In dieser Anweisung extrahiert die Unterabfrage (T1) verschiedene Zeilen mit nicht NULL- und nicht leeren „VALUE“-Werten. Die Hauptabfrage (t) verknüpft dann mit dieser Unterabfrage die Felder „ID“ und „NAME“, um die zu aktualisierenden Zeilen zu identifizieren. Dadurch werden die leeren „VALUE“-Zellen mit den entsprechenden Werten aus den nicht leeren Zeilen mit demselben „NAME“-Wert gefüllt.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3