是否可以在where子句中使用if staement?
即
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))
基本上如果一列为null,我需要使用替代列进行选择。
非常感谢,
亚当
答案 0 :(得分:6)
您可以使用CASE
语句稍微改变一下:
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))