Я использую следующий запрос, чтобы преобразовать столбец «Characteristic__c» varchar (255) в DECIMAL (22,8). Значение Characteristic__c было указано как просто 0.0, но оно все равно вызывает ошибку «Ошибка арифметического переполнения, преобразующая varchar в тип данных числовой». Не знаю причины и благодарности за помощь.Зачем возникает ошибка «Ошибка арифметического переполнения, преобразующая varchar в тип данных numeric»?
SELECT CONVERT(DECIMAL(22,8) , Characteristic__c) FROM [ODS].[dbo].
[Scorecard_Details__c]
WHERE Attribute__c='Employment Duration' and Characteristic__c=0.0 and
WOE__c=0
'varchar (255)' должен быть слишком широким, чтобы вписаться в 'decimal (22, 8)'. Просто потому, что данный _value_ равен '0.0', не означает, что занимаемое им пространство отражает эту сумму. –
Вопрос только в том, что предложение WHERE, я считаю. Вы получите ту же ошибку с чем-то вроде: 'select 1 from (values ('1')) t (a) где t.a = 0.0;'. Исправление, вероятно, зависит от того, как выглядят ваши данные. – ZLK
TBH Ваши имена столбцов выглядят уродливыми –