ähnliche Werte in Tabelleln suchen und ersetzen

xp4mer1

Benutzer
Beiträge
12
Einen wunderschönen guten Morgen zusammen!

Ich habe in Tabelle T0, Spalte A Farbcodes stehen: zb. black, blk, black night, black rain etc.
In Tabelle T1, Spalte A stehen Farbcodes denen die Werte aus Tabelle T0 zugeordnet werden sollen:

Wenn der Wert in T0.A ähnlich dem Wert T1.A dann Update T0.A mit T1.A,
Wenn der Wert in T1.A nicht vorhanden ist dann erstelle einen Eintrag dafür in T1.A und Update T0.A damit.

Könnt ihr mir hier weiterhelfen?
Besten Dank!
 
Werbung:
Ist es zwingend erforderlich das ganze automatisch auf unterschiedlichen Datenbeständen zu durchlaufen? Oder kann man grad für jede Farbe ein UPDATE Statement raus hauen a la
Code:
UPDATE    T0
SET        A = (    SELECT    A
                FROM    T1
                WHERE    A LIKE 'black%' )
WHERE    A LIKE 'black%'

Oder soll das ganze regelmäßig statt finden dann wäre sicherlich ein Trigger sinnvoll. Außerdem würde ich die Farben nicht überschreiben sondern zunächt mal eine B Spalte befüllen.
 
Hallo xp4mer1,

hast Du schon mal SOUNDEX ausprobiert?

Schau mal in die Onlinehilfe da ist alles genau beschrieben.

Gruß Charly
 
Hallo Zusammen,

danke für Eure Vorschläge!

Ich komme mit beiden Lösungsansätzen nicht weiter da z.B. ein "Midnight Black" nicht erkannt wird.
Zudem kann es vorkommen dass eine Farbe "Black/White" zu "Black" werden soll. (Die erst genannte Farbe ist die Hauptfarbe) Bei einem Like %white% wäre das Ergebnis "White" anstelle von "Black"

Habt Ihr sonst noch Ideen?
lg, markus
 
Werbung:
Das Problem kann man ja mit der Abfolge der Update Befehle regeln. Die wichtigste Farbe zuerst.

Mal angenommen du hast Spalte A und B in T0. A ist der vorgegebene Wert, B der komulierte. Du führst eine Reihe von Suchen aus:

Code:
UPDATE    T0    SET    B = NULL
UPDATE    T0    SET    B = 'Black'        WHERE    A LIKE '%black%'    AND    B IS NULL
UPDATE    T0    SET    B = 'White'        WHERE    A LIKE '%white%'    AND    B IS NULL

Dann guckst du, welche Farben noch offen sind und fügst für diese neue UPDATEs ein.

Code:
SELECT    DISTINCT A
FROM    T0
WHERE    B IS NULL
ORDER BY A

Das ist der manuelle Weg. Natürlich gibt es Fälle, in denen sowas in einem einzigen Script und mit einer Tabelle wie T1 gemacht werden muss, das ist aber ungleich schwerer.
 
Zurück
Oben