Abarbeitung der WHERE Bedingung

MichaelHe

Neuer Benutzer
Beiträge
2
Hallo,
zunächst möchte ich kurz erwähnen, dass ich bisher kaum mit SQL zu tun hatte.
Hier also meine Frage:
Wenn ich innerhalb einer WHERE Bedingung folgenden Aufbau habe (Am Anfang sollen Zeilennummern sein):
1. WHERE
2. a =1
3. AND b =2
4. AND c =3
5. OR
6. a =2
7. AND b =2
8. AND c=3

Dann wird nach meinem Verständnis gem. der Operatorrangfolge zuerst Zeile 4 bis 6 ausgeführt und dann der Rest.
Hintergrund: In einer SQL Abfrage die ein Kollege vor längerer Zeit eingerichtet hat wird offenbar davon ausgegangen, das Zeile 2 bis 4 ausgeführt wird und wenn hier kein Ergebnis erzielt wird, Zeile 6 bis 8.

Sehe ich das richtig? Wenn ja, gibt es eine Möglichkeit die Abfrage so zu gestalten, dass sie so funktioniert wie sich der Kollege das gedacht hat?

Vielen Dank schonmal
Michael
 
Werbung:
Wenn Du Kriterienblöcke bilden willst, die unabhängig voneinander zutreffen, dann brauchst Du Klammerung um die jeweiligen Blöcke und OR dazwischen.
Sind die Blöcke wie bei Dir konstante Kriterien, reicht auch die einmalige Abfrage des Blocks und die AND Verbindung mit (a=1 or a=2), alternativ auch: a in (1,2)
 
Die Werte im Beispiel sind stark vereinfacht. Es sind im Original z.B. DATEDIFF Anweisungen enthalten.
Das bedeutet also, dass folgende Konstellation funktionieren müsste?
1. WHERE
(
2. a =1
3. AND b =2
4. AND c =3
)
5. OR
(
6. a =2
7. AND b =2
8. AND c=3
)
 
Werbung:
Ja, z.B.
Schon mal ausprobiert? Tut nicht weh.
Und wie gesagt, die Kriterien für b und c sind im Beispiel allgemein gültig und brauchen nicht ge-odert zu werden, könnten also auch so, einmalig für sich stehen. Würde den Leser vielleicht weniger in die Irre führen.
 
Zurück
Oben