SELECT Abfrage mit EXISTS liefert nicht das gewünschte Ergebnis

Kissling

Benutzer
Beiträge
15
Hallo Zusammen,

Nach Studium von W3Scool habe ich mir eine Abfrage erstellt.
Leider leifert die von mir erstelle Abfrage nicht das geünschte Ergebnis.
Ich muss eine Liste mit 10 Feldern durchsuchen.
In der Liste von 10 Feldern muss in einem der Felder ein Wert "SPIRIT" enthalten sein.

Leider liefer mir die folgende Abfrage aber das falsche Ergebnis.
1. Es werden komplett leere Zeilen aungezeigt
2. Es werden Zeilen angezeit in denen auch nicht der Wert "SPIRIT" enthalten ist.

Hier meine Abfrage:

Code:
SELECT PROGRAM1,PROGRAM2,PROGRAM3,PROGRAM4,PROGRAM5,PROGRAM6,PROGRAM7,PROGRAM8,PROGRAM9,PROGRAM10
FROM cRM_Solution_cosmolink_faktura_ES.dbo.Contacts
WHERE EXISTS
(
SELECT PROGRAM1 FROM Contacts WHERE PROGRAM1 IS NOT NULL or
PROGRAM2 LIKE 'SPIRIT'or
PROGRAM3 LIKE 'SPIRIT'or
PROGRAM4 LIKE 'SPIRIT'or
PROGRAM5 LIKE 'SPIRIT'or
PROGRAM6 LIKE 'SPIRIT'or
PROGRAM7 LIKE 'SPIRIT'or
PROGRAM8 LIKE 'SPIRIT'or
PROGRAM9 LIKE 'SPIRIT'or
PROGRAM10 LIKE 'SPIRIT'
)
;

Hier das Ergebnis:
1659087646531.png

Frage:
Wie mache ich die Abfrage richtig?

Vielen Dank
 
Werbung:
Ich sehe drei Fehler:
- spalte LIKE 'text' ist im Wesentlichen wie spalte = 'text', es sei denn du arbeitest mit Wildcards wie in LIKE '%text%' um auch innerhalb Zeichenketten zu suchen. Ansonsten macht = mehr Sinn.
- Dein EXISTS ist immer True sobald der Subselect einen Treffer zurück liefert oder andersrum, dein Subselect steht nicht mit deinem eigentlichen Select in einer Abhängigkeit, er ist einfach immer True für jede Zeile im Haupt-Select.
- Wenn die Tabellen cRM_Solution_cosmolink_faktura_ES.dbo.Contacts und Contacts die selben sind macht dein Vorgehen gar keinen Sinn. Dann wäre die Abfrage einfach:
Code:
SELECT PROGRAM1,PROGRAM2,PROGRAM3,PROGRAM4,PROGRAM5,PROGRAM6,PROGRAM7,PROGRAM8,PROGRAM9,PROGRAM10
FROM cRM_Solution_cosmolink_faktura_ES.dbo.Contacts
WHERE PROGRAM1 IS NOT NULL or
PROGRAM2 LIKE 'SPIRIT'or
PROGRAM3 LIKE 'SPIRIT'or
PROGRAM4 LIKE 'SPIRIT'or
PROGRAM5 LIKE 'SPIRIT'or
PROGRAM6 LIKE 'SPIRIT'or
PROGRAM7 LIKE 'SPIRIT'or
PROGRAM8 LIKE 'SPIRIT'or
PROGRAM9 LIKE 'SPIRIT'or
PROGRAM10 LIKE 'SPIRIT'
 
Zurück
Oben