Mehrere Spalten gegeneinander prüfen

JudAD

Fleissiger Benutzer
Beiträge
71
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
 
Werbung:
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
...
 
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
 
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.
 
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!
 
Werbung:
Zurück
Oben