У меня есть таблица, где значение версии является NVARCHAR, а не целого числа, так когда я использую больше, чем заявление он не отходил правильные данныеПреобразовать NVARCHAR в целое число в SQL
Я пытаюсь преобразовать версию в целом, но я получаю сообщение об ошибке, пожалуйста, помогите получила
Declare @dversion int;
set @dversion = (select convert(int, displayversion) from Inv_AddRemoveProgram where DisplayName like 'Symantec Enterprise Vault%')
select distinct v1.name, v1.[user], t1.displayname, @dversion from vComputer v1
inner join Inv_AddRemoveProgram t1
on v1.Guid = t1._ResourceGuid
where t1.DisplayName like 'Symantec Enterprise Vault%'
and @dversion > '10.0.17573'
ошибки: Msg 245, уровень 16, состояние 1, строка 3 конверсии удалась при преобразовании значения NVARCHAR '10 .0.17573' для типа данных Int.
Я также пытался писать два простых запросов, чтобы преобразовать значение версии в этой таблице, которая также не работала
select displayname, CONVERT(INT, displayversion) from Inv_AddRemoveProgram
Error: Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '3.1.05160' to data type int.
select displayname, CAST(displayversion AS INT) from Inv_AddRemoveProgram
Error: Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '3.1.05160' to data type int.
также сообщение об ошибке имеет ключ в нем, '10.0.17573' не является целым числом, и вы не может преобразовать это значение в целое. –
Вам нужно удалить '.' из строки. Возможно, вам нужно разбить их на «Major», «Minor», «Micro»? – christiandev
'3.1.05160' Не является целым или числовым типом любого типа, потому что существует более 1 периода'. 'Если вы хотите отображать каждую цифровую строку в строке как int, вам придется разбить строку вверх по периодам затем конвертировать каждую запись в int. Или используйте предложение @ christiandev и удалите все периоды. –