Здравствуйте, у меня есть следующий запрос, который проверяет код, чтобы определить, когда он был введен или просмотрен.
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 допущена синтаксическая ошибка. Пожалуйста, дайте мне знать, как это исправить Спасибо
Существует два способа написания операторов 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.