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

Mehrere Spalten gegeneinander prüfen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von JudAD, 28 Juni 2017.

  1. JudAD

    JudAD Fleissiger Benutzer

    Hallo,

    irgendwie stehe ich auf dem Schlauch und finde keine Lösung. Ich möchte einen Datensatz nur auszugeben, wenn in jenem Datensatz in mindestens einer Spalte aus 6 betreffenden Spalten ein anderer Wert als in den restlichen Spalten enthalten ist!

    Hier ein kleines Besipiel

    Spalte1, Spalte2, Spalte3, Spalte4, Spalte5, Spalte6
    aaaaaa, aaaaaa, aaaaaa, aaaaaa, aaaaaa, aaaaaa -- keine Ausgabe - aller Werte identisch
    aaaaaa, aaaaaa, aabaaa, aaaaaa, aaaaaa, aaaaaa -- Ausgabe, da Spalte3 ungleich Rest
    aaaaaa, aaaaaa, aabaaa, aaaaaa, aaaaca, aaaaaa -- Ausgabe, da Spalte3 & Spalte5 ungleich Rest

    Danke vorab
     
  2. ukulele

    ukulele Datenbank-Guru

    Wenn die zu vergleichenden Daten in verschiedenen Spalten stehen bedeutet das immer Arbeit, logischer wären vermutlich verschiedene Datensätze.

    Handarbeit sähe so aus:
    Code:
    SELECT * FROM tabelle
    WHERE Spalte1 != Spalte2 AND Spalte1 != Spalte3 AND Spalte1 != Spalte4 AND Spalte1 != Spalte5 AND Spalte1 != Spalte6
    OR Spalte2 != Spalte1 AND Spalte2 != Spalte3 AND Spalte2 != Spalte4 AND Spalte2 != Spalte5 AND Spalte2 != Spalte6
    ...
     
  3. JudAD

    JudAD Fleissiger Benutzer

    OK, habe es mehr oder weniger genau so gemacht, hatte nur gehofft dass es vielleicht einen einfacheren Befehl gibt. Ich habe allerdings jede Bedingung mit "OR" verknüpft

    Danke
     
  4. ukulele

    ukulele Datenbank-Guru

    Dann würde aber ein Datensatz wie
    aaaaaa, aaaaaa, aabaaa, aabaaa, aaaaaa, aaaaaa
    auch ausgegeben und du sagtest das ein Wert anders sein muss als alle anderen in der Zeile, was ja nicht der Fall wäre.
     
  5. JudAD

    JudAD Fleissiger Benutzer

    Vielleicht habe ich mich ungenau ausgedrückt, aber ja - wenn mindest eines der Werte anders ist soll eine Ausgabe erfolgen, das ist richtig. Im Umkehrschluss - keine Ausgabe erfolgt nur wenn alle Werte exakt identisch sind. Ich habe im ersten Post geschrieben "...mindestens einer Spalte..."

    Wie gesagt hatte ich gehofft auf sowas wie: ... where Spalte1 != Spalte2 != Spalte3 != Spalte4,... -- wäre halt schneller geschrieben und die Fehler

    Danke für Deine Mühe!
     
  6. JudAD

    JudAD Fleissiger Benutzer

    ...Fehlerpotenzial geringer - meinte ich ;-)
     
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