Oracle: case ergebnis in Where Klausel

Communicate

Mitglied
Hallo,
für Profis ist meine Frage bestimmt Kinderleicht, ich scheitere aber leider gerade daran :-(.

Wenn ich im Select teil ein Case habe (z.B. case when datum = to_date('31.03.2009') then 'a' else 'b' end as test)

wie kann ich im Where teil dann auf mein Feld "test" zugreifen?
also so in der Richtung "where test='a' ?

Vielleicht könnt Ihr mir ja helfen :)

Grüße
Communicate
 
Hi,

wie kann ich im Where teil dann auf mein Feld "test" zugreifen?
also so in der Richtung "where test='a' ?

ich kenne mich zwar mit Oracle nicht aus, würde aber trotzdem sagen: gar nicht. ;)

Wenn die Bedingungen in der WHERE-Klausel ausgewertet werden, existiert "test" noch nicht.
Du könntest auf die Bedingung einschränken, die bewirkt, das "a" für "test" geliefert wird:

Code:
WHERE datum = to_date('31.03.2009')

LG
 
Hallo Communicate,

ich kenne mich zwar auch nicht mit Oracle aus, würde aber trotzdem sagen: Evtl.:).

Kuddeldaddeldu hat natürlich Recht damit, dass 'test' in der WHERE-Bedingung noch nicht existiert.
Auch könntest du das Datum vorher einschränken (s. Post von Kuddeldaddeldu).

Aber du könntest das CASE in der WHERE-Bedingung benutzten:
Code:
where (case when datum = to_date('31.03.2009') then 'a' else 'b' end = 'a')
Ob es bei Oracle funktioniert kann ich dir nicht sagen, aber bei MSSQL geht es so.
 
Zurück