我有具有將稍後在導入過程被轉化成decimal(9,3)
數據的列[Cash] nvarchar(50)
,一些數據與正常外觀數值如134.630,-80.662和一致324.372。偶爾我有多個點的數字值的數據,如1.324.372 and -2.134.630.
有沒有辦法去除這個額外的點。轉換爲有效的十進制數據類型
1
A
回答
1
declare @yourtable table(cash varchar(20))
insert @yourtable values('1.324.372')
insert @yourtable values('-2.134.630')
insert @yourtable values('1.234.567.89')
舊代碼:
select reverse(replace(replace(stuff(reverse(cash), charindex(
'.', reverse(cash)), 1, ','), '.', ''), ',', '.'))
from @yourtable
稍微升級代碼(結果是一樣的):
select reverse(stuff(reverse(replace(cash, '.', '')),
charindex('.', reverse(cash)), 1, '.'))
from @yourtable
結果:
1324.372
-2134.630
1234567.89
+0
輝煌的成果。感謝您的幫助 –
1
你可以;
select case when len(cash) - len(replace(cash, '.', '')) > 1 then
reverse(stuff(reverse(cash), charindex('.', reverse(cash)), 1, ''))
else
cash
end
from T
+0
這是我最初嘗試的 –
0
創建包含具有適當值的計算字段的視圖。
這樣你仍然可以看到varchar值和相應的十進制值。
像這樣:
選擇 [現金], 鑄造(替換([現金], '')爲十進制 '')從....
爲[CashDecimal]相關問題
- 1. 將.net十進制類型轉換爲tsql十進制(3,3)
- 2. 將數據類型數字轉換爲十進制時出錯
- 3. 錯誤轉換數據類型 '數字' 爲十進制(幫助!)
- 4. 將int轉換爲十進制數據類型的過程?
- 5. 將二進制,十六進制和八進制轉換爲java數據類型
- 6. 轉換爲十進制數
- 7. 沒有數據類型可以保存完整數字時將十進制轉換爲十六進制
- 8. 有效的算法來轉換整數爲十進制
- 9. 十進制轉換爲十六進制的轉換(Java)的
- 10. 轉換十進制sql類型爲.net浮點類型
- 11. 將八進制數轉換爲十進制和十六進制
- 12. 各地十進制數據類型轉換
- 13. 理解類值(翻譯十六進制轉換爲十進制)
- 14. 通過十六進制轉儲將Fortran真實數據類型轉換爲Matlab
- 15. 將十進制轉換爲十六進制和十六進制
- 16. 十六進制轉換爲十進制電壓轉換
- 17. 將非十進制數轉換爲十進制數
- 18. 將十進制轉換爲特定格式的十進制數?
- 19. 十進制數爲十六進制的轉換在SQL Server 2008
- 20. 將excel中的Unicode十六進制數轉換爲十進制
- 21. 十進制轉換爲字符串「指定的轉換無效」
- 22. 將十六進制轉換爲二進制,然後轉換爲十進制
- 23. 轉換十六進制數長整型
- 24. 有麻煩的十進制數轉換爲二進制
- 25. 轉換爲十進制的整數
- 26. Python的轉換分數爲十進制
- 27. 轉換的十六進制數爲雙
- 28. Arduino的轉換十進制轉換爲二進制到十進制
- 29. 雙轉換爲十進制
- 30. 轉換爲十六進制?
不''-2.134.630.''有在最後一個點一樣好,甚至是一個句號? –
所以,數字分組符號是'.'。什麼是小數點分隔符? –
您可以更確切地指定行爲嗎?例如,所有的值都有3位小數。正如所寫,實際上並不清楚數字*應該是...... – MatBailie