1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

ähnliche Werte in Tabelleln suchen und ersetzen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von xp4mer1, 20 Mai 2011.

  1. xp4mer1

    xp4mer1 Benutzer

    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!
     
  2. ukulele

    ukulele Datenbank-Guru

    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.
     
  3. Charly

    Charly Datenbank-Guru

    Hallo xp4mer1,

    hast Du schon mal SOUNDEX ausprobiert?

    Schau mal in die Onlinehilfe da ist alles genau beschrieben.

    Gruß Charly
     
  4. xp4mer1

    xp4mer1 Benutzer

    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
     
  5. ukulele

    ukulele Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen