4

嗨,我有一个以下查询,用于检查代码以确定何时输入或查看代码。

        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 a.id=@Id;

当我尝试运行此查询时,它给了我错误

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

when 行中有一些语法错误。请让我知道如何纠正这个谢谢

4

1 回答 1

20

有两种写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

是等价的。它们可能不起作用,因为您可能需要将日期类型转换为 varchars 以将它们附加到其他 varchars。

于 2013-10-26T20:18:55.103 回答