используя оператор if в предложении Where - PullRequest
2 голосов
/ 15 декабря 2010

возможно ли использовать выражение if в предложении where?

т.е.

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))

в основном, если один столбец равен нулю, мне нужно использоватьальтернативный столбец для выбора.

Большое спасибо,

Адам

1 Ответ

6 голосов
/ 15 декабря 2010

Вы можете сделать это, используя оператор 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...