簡體   English   中英

sql 對臨時列的查詢條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM