【发布时间】:2017-06-16 00:25:39
【问题描述】:
我试图在 where 子句中放置一个 if 条件,但我无法找出我想要的正确语法。
逻辑应该是,如果某个时期等于特定数字,则检查以确保 pdftype 不为空,否则不要全部检查。
这是我目前所拥有的:
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
【问题讨论】:
-
我会在
OR中使用多个条件,如下面的答案所示,但您可以在WHERE中使用CASE:AND CASE WHEN rcr.DataCollectionPeriodID = 163 THEN PDFType ELSE 'X' END IS NOT NULL -
This answer 显示了如何在
ON子句中使用CASE表达式。WHERE子句也是如此。
标签: sql-server tsql