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ステートメントを書くには2つの方法があります.2つの組み合わせを使用しているようです.

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

同等です。日付型を varchar に変換して他の varchar に追加する必要があるため、機能しない場合があります。

于 2013-10-26T20:18:55.103 に答える