Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Spalte mit Komma getrennten Werten vergleichen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von ny_unity, 8 Juni 2020.

  1. ny_unity

    ny_unity Datenbank-Guru

    Hallo zusammen,

    ich habe eine Spalte, die enthält strings wie: a, b, c, d => also mehrere Werte die durch ein Komma getrennt sind (angenommen Spaltenname ist Prüfung)

    Jetzt möchte ich darauf ein where setzen, also in der Art wie Prüfung in (a,b,d). Jetzt sollen alle Werte angezeigt werden, die a b oder d enthalten.

    Kann jemand helfen? mit einem einfachen in gehts nicht, wahrscheinlich weil meine Spalte nicht eindeutig ist, weil er nimmt immer den ersten wert und vergleicht dann.

    Danke,

    MfG

    Erik
     
  2. akretschmer

    akretschmer Datenbank-Guru

    das ist ein recht gutes Zeichen für ein verkorkstes Tabellendesign. Anstatt jetzt eine Lösung dafür zu suchen, wie man dennoch damit zurecht kommt und den Murks damit zementiert wäre es besser, das Grundproblem zu lösen.
     
  3. ny_unity

    ny_unity Datenbank-Guru

    ich habe die Tabelle selbst aufgebaut und gefüllt. Die Werte darin stellen die Branchen eines Kunden dar, ein Kunde kann halt mehrere Branchen haben. Und ich suche mit meinen Beurfsschlüsseln, ob sie in diese Branche passen.

    Aufgebaut ist es also:
    Spalte 1: Kunde A
    Spalte 2: Holz, Boden, Metall

    Jetzt möchte ich das der Kunde angezeigt wird, wenn ich nach Metll filtere. Aber der Kunde wird nur gefiltert, wenn ich nach Holz suche.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    mach eine zweite Tabelle, mit einen FK auf den Kunden und einer Spalte für die Branche. Dann kannst Du da nach herzenslust Zeilen zufügen, ändern, löschen. Und die Suche ist trivial. JOIN's zwischen Tabellen wurden EXAKT für diesen Usecase erfunden, nutze sie.
     
  5. ukulele

    ukulele Datenbank-Guru

    Das Design ist kaputt und sollte gefixt werden.
    Code:
    SELECT * FROM tabelle WHERE spalte2 LIKE '%Metall%'
    wird dich in diesem Fall zum Ziel führen. Schon sehr bald wird das aber vermutlich nicht mehr reichen.
     
  6. ny_unity

    ny_unity Datenbank-Guru

    hab es umgebaut, jetzt passt es, hatte anfänglich mit performance probleme, aber das klappt jetzt auch wieder... danke!
     
    akretschmer gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden