Ich versuche, eine Wenn-Bedingung innerhalb einer Where-Klausel setzen und ich kann nicht die richtige Syntax für das, was ich will.SQL Server: IF-Bedingung in Where-Klausel
Die Logik sollte sein, wenn eine bestimmte Periode gleich einer bestimmten Zahl ist, dann überprüfen Sie, ob pdftype nicht Null ist, sonst überprüfen Sie nicht alles.
Hier ist, was ich bisher:
where
g.ReportInstanceID = blah
and rcr.FormID = blah
and rcr.FormSectionID = blah
and rcr.SubSectionID = blah
and CASE rcr.DataCollectionPeriodID
WHEN 163 THEN (PDFType IS NOT NULL)
END
ich mehrere Bedingungen mit 'OR' in Antwort wie unten dargestellt verwenden würde, aber Sie können' CASE' verwenden in 'WHERE':' UND CASE WHEN rcr.DataCollectionPeriodID = 163 DANN PDFType ELSE 'X' ENDE IST NICHT NULL ' –
[This] (http://stackoverflow.com/a/10260297/92546) Antwort zeigt, wie ein CASE-Ausdruck in einer ON-Klausel verwendet werden kann. Das Gleiche gilt für eine WHERE-Klausel. – HABO