Люди, я прочитал исправления для этой проблемы, но у меня есть вариант, который я не могу решить.Ошибка SQL Select Case Conversion не удалось при преобразовании значения varchar в тип данных int.
Во-первых, следующий синтаксис бросает ошибку
Case
when #TFs.lTFID = 1161165 then REPLACE(CONVERT(VARCHAR(11), cast([dCreatedUTC] as datetime), 106), ' ', '-')
when #TFs.lTFID = 1161166 then 'Administrator'
when #TFs.lTFID = 1161167 then ''
when #TFs.lTFID = 1161168 then AssetID
when #TFs.lTFID = 1161169 then ''
when #TFs.lTFID = 1161170 then ''
when #TFs.lTFID = 1161172 then ''
when #TFs.lTFID = 1161173 then ''
else CAST(#TFs.lTFID as varchar(20))
End 'Value'
Если я комментирую все, кроме одного из «когда» линии, как показано ниже он работает.
Case
when #TFs.lTFID = 1161165 then REPLACE(CONVERT(VARCHAR(11), cast([dCreatedUTC] as datetime), 106), ' ', '-')
/* when #TFs.lTFID = 1161166 then 'Administrator'
when #TFs.lTFID = 1161167 then ''
when #TFs.lTFID = 1161168 then AssetID
when #TFs.lTFID = 1161169 then ''
when #TFs.lTFID = 1161170 then ''
when #TFs.lTFID = 1161172 then ''
when #TFs.lTFID = 1161173 then ''*/
else CAST(#TFs.lTFID as varchar(20))
End 'Value'
Любые мысли о том, как я могу отформатировать этот запрос так, чтобы все «случаи» работали?
Что такое тип данных вашего 'столбца AssetID' в таблице ?? –
Какое сообщение об ошибке вы получаете? – AKS
Если ваш 'AssetID' является * численным * типом данных (' int', 'decimal' и т. Д.), Вам нужно будет также использовать' CAST (AssetID AS VARCHAR (n)) 'на нем (например, dCreatedUTC'), так что каждое предложение WHEN возвращает один и тот же тип данных в выражение 'CASE' –