我在一個名為 [AMOUNT] 的表中有一個列。該列包含從 Excel 表以貨幣格式上傳的值(即 $158.96、($78.36)、$714.98、($7.73) 等)。如何將這些值轉換為小數,使其不再具有 $ 符號或括號(但括號值仍應具有負號)?
我認為可行的方法如下,它解決了類似的問題,但值略有不同(負值沒有括號)。
CAST(CONVERT(VARCHAR(10), CONVERT(MONEY, [AMOUNT])) AS DECIMAL(14,4) AS AMOUNT_V2
| 數量 | 金額_V2 |
|---|---|
| 158.96 美元 | 158.96 |
| (78.36 美元) | -78.36 |
uj5u.com熱心網友回復:
您需要處理括號以產生負數 - 一種方法是使用translate,例如
select Cast(Translate('($78.36)','()','- ') as money)
編輯 -如果是 2016 年或更早版本,則使用嵌套替換
select Cast(Replace(Replace('($158.45)','(','-'),')','') as money)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/456564.html
上一篇:格式化列以獲取特定數量的值
