[英]sql query condition on temporary column
我稍微思考了一下這個。 在 SO 上找到了一些問題,但沒有一個解決了我的問題。
我想要做的是比較表中的兩個日期,我使用 case 語句返回兩者中的較大者
select <-- similar code but not actual code
...
case
when date1 > date2 then date1 else date2 end as lastDate
到目前為止一切都很好。 我在結果中得到了更大的日期。 問題是我想在 LastDate 上應用 WHERE 子句。 由於 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”關鍵字錯誤。 我認為在case語句中的'then'關鍵字之后不能返回語句。 我該怎么做呢? 我必須為此使用臨時表嗎? 我想找到最好的方法。
在WHERE
子句中使用相同的語法:
WHERE case when date1 > date2 then date1
else date2 END
like '2011-%'
編輯:
日期比較示例代碼:
WHERE case when date1 > date2 then CAST(date1 as varchar)
else CAST(date2 as varchar) END
like '2011-%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.