2013-10-26 98 views
2

嗨我有一個以下查詢,檢查代碼以確定它是何時進入或查看。在選擇查詢中使用多個case語句

 declare @timestamp datetime; 
     select 
      case @timestamp 
      when a.updatedDate =1760 then 'Entered on' +a.updatedDate 
      when a.updatedDate=1710 then 'Viewed on' +a.updatedDate 
      else 'Last Updated on'+ a.updatedDate 
      end 
     from t_mainTable a 
     where [email protected]; 

當我嘗試運行此查詢它給了我錯誤

Msg 102, Level 15, State 1, Procedure p_xxxx, line 40 
Incorrect syntax near '='. 

有一些錯誤了Syntex在時線。請讓我知道如何糾正這種 感謝

+4

刪除'@ timestamp'。 –

回答

18

有寫case語句兩種方法,你似乎可以用兩個

case a.updatedDate 
    when 1760 then 'Entered on' + a.updatedDate 
    when 1710 then 'Viewed on' + a.updatedDate 
    else 'Last Updated on' + a.updateDate 
end 

case 
    when a.updatedDate = 1760 then 'Entered on' + a.updatedDate 
    when a.updatedDate = 1710 then 'Viewed on' + a.updatedDate 
    else 'Last Updated on' + a.updateDate 
end 

組合是等效。它們可能不起作用,因爲您可能需要將日期類型轉換爲變量以將它們附加到其他變量。