我使用下面的查詢將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你的列名看起來很醜 –