我使用下面的查询将varchar(255)的列'Characteristics__c'转换为DECIMAL(22,8)。特性___的值被指定为0.0,但它仍然会导致错误'算术溢出错误将varchar转换为数据类型数字'。不知道原因并感谢您的帮助。什么导致错误'算术溢出错误将varchar转换为数据类型数字'?
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)where t.a = 0.0;'。修复可能取决于你的数据是什么样子。 – ZLK
TBH你的列名看起来很丑 –