2010-12-15 9 views
2

ist es möglich, eine if-Anweisung in einer where-Klausel zu verwenden?Mit einer if-Anweisung in Where-Klausel

d.h.

WHERE (underwritername = 'underwriter') and (case when inceptiondate is null then (requestdate >= convert(datetime,'01/10/2009',103)) else (Inceptiondate >= convert(datetime,'01/10/2009',103)) ) and (requestdate <= convert(datetime,'31/10/2010',103))

im Grunde, wenn eine Spalte null ist, ich brauche eine alternative Spalte für die Auswahl zu verwenden.

Vielen Dank,

Adam

Antwort

6

Sie können das tun mit der CASE Aussage ein wenig anders:

WHERE (underwritername = 'underwriter') 
and (case when inceptiondate is null 
    AND requestdate >= convert(datetime,'01/10/2009',103) THEN 1 
    WHEN inceptiondate IS NOT NULL 
    AND Inceptiondate >= convert(datetime,'01/10/2009',103) THEN 1 ELSE 0 END = 1) 
and (requestdate <= convert(datetime,'31/10/2010',103)) 
+0

fantastisch .. thankyou .. Mein Gehirn bekommt die Logik, aber die Syntax immer entzieht sich mir. :) –

+0

Ja, die Syntax ist irgendwie schwierig ... froh, dass es funktioniert – Lamak

+0

aus irgendeinem Grund funktioniert das nicht mehr für mich .. entweder meine früheren Daten trickten mich oder ich habe etwas geändert .. –

Verwandte Themen