/ / Ist es möglich, Nullfelder auszufüllen, wenn die richtigen Werte in anderen Datensätzen derselben Tabelle vorhanden sind? - SQL, MS-Zugriff

Ist es möglich, Nullfelder auszufüllen, wenn die korrekten Werte in anderen Datensätzen in derselben Tabelle vorhanden sind? - SQL, MS-Zugriff

Derzeit gibt es in meinem Datensatz ein bestimmtes Feld, in dem einige Datensätze keine Werte haben. Das Feld darf im Schema NULL sein.

Manchmal werden diese Daten jedoch basierend auf der ID in anderen Datensätzen in der Datenbank aufgefüllt.

Ich möchte eine Abfrage ausführen, um diese NULL zu aktualisierenFelder mit den entsprechenden Werten basierend auf dem Inhalt der restlichen Datenbank. Nehmen Sie an, dass es für diese Felder niemals widersprüchliche Werte geben wird.

Beispielsweise:

ID      Identifier          Address                    Name            OrderID
123                         23 Sheppard Court          David           465464322
456     100100100100        29 Milestone Cres          Terry           651654986
789     200200200200        102 Dynamo Drive           Joseph          397431357
123     300300300300        23 Sheppard Court          David           516198532

Die Datensätze im obigen Beispiel sind eindeutig, aber das Feld Identifier wird für die erste Zeile nicht ausgefüllt.

Ich möchte eine Abfrage ausführen, die es mir ermöglicht, dieses fehlende Feld schnell mit dem richtigen Wert zu aktualisieren, d. H. 300300300300 in diesem Fall.

Antworten:

1 für die Antwort № 1

Nehmen Sie an, dass es für diese Felder niemals widersprüchliche Werte geben wird.

Wenn dies eine gültige Annahme ist, ist dies bei weitem die einfachste Lösung.

UPDATE tableName a
SET identifier = (
SELECT distinct identifier
FROM tableName b
WHERE a.id = b.id
AND identifier IS NOT NULL)
WHERE identifier IS NULL

Mit kann man schicker werden MERGE INTO Syntax, aber ich bin nicht sicher, ob das im Zugriff verfügbar ist.


0 für die Antwort № 2

Aktualisiert alle Ihre fehlenden IDs.

UPDATE yourTable t1
SET t1.Identifier =
(SELECT TOP 1 Identifier FROM yourTable
WHERE t1.Identifier IS NOT NULL)
WHERE t1.Identifier IS NULL

Randnotiz: Wie ist es möglich, dass Sie solche unordentlichen Daten haben? Normalerweise solltest du noch nie müssen solche Updates in Ihrer Datenbank starten.

Haben Sie auch einen Primärschlüssel in Ihrer Tabelle? Weil ich keinen sehen kann und es ist wirklich ein Muss auf fast jedem tisch.