Я немного подумал об этом.Нашел несколько вопросов по SO, но ни один из них не решил мою проблему.
То, что я пытаюсь сделать, это сравнить две даты в таблице, я возвращаю большее из двух значений с помощью оператора case
select <-- similar code but not actual code
...
case
when date1 > date2 then date1 else date2 end as lastDate
Все хорошо до этого момента.Я получаю большую дату в моем результате.Проблема в том, что я хочу применить предложение WHERE к LastDate.Поскольку lastDate - это временный столбец, он не будет принят в предложении WHERE, в котором я использовал этот синтаксис
if @cur_date != null <---- this is parameter to my store procedure, if not null then
case when date1 > date then date1 like '2011-%' else date2 like '2011-%'
Но я получаю ошибку для неуместного ключевого слова like.Я думаю, что оператор не может быть возвращен после ключевого слова then в операторе case.Как мне это сделать?У меня есть , чтобы использовать временную таблицу для этого?Я хочу найти лучший подход.