在列[Return rate]
,我有這樣的值:會將文本或VARCHAR到十進制類型
20.0%
17.1%
etc
在我的詢問,我想在計算中使用此值。
因此,首先,我由一個空字符串''
更換'%'
:
REPLACE([Return Rate], '%' ,'') AS [Test]
這工作,我得到這樣的'20 0.0' 時,[收益率]是'20 1.0%的價值觀。
然後我嘗試在計算中使用此[測試]值,例如:
(REPLACE([Return Rate], '%' ,'') * 10) AS [Test]
但我在邏輯上得到一個錯誤,所以我嘗試這個文本值轉換爲執行我的計算:
CAST (REPLACE([Current Xelus FE Return Rate], '%' ,'') AS decimal(2,1)) [Decimal Test]
而且它在這裏我得到的錯誤:
Arithmetic overflow error converting varchar to data type numeric. Warning: Null value is eliminated by an aggregate or other SET operation.
有別人的答案,這個錯誤? 非常感謝,
謝謝大家,但似乎NULL值和其他(如'N/A')是造成這個問題的原因。 有人知道如果有一個SQL或T-SQL函數來驗證參數中的值是否是數值嗎? (例如,我可以爲「N/A」等值)做一個特例。 – lour 2013-02-27 14:24:56