前言
最近專案中,有對財務方面打交道,所以在sql中有對一些金額的計算和統計,千分號格式的一系列問題也是被我遇上了,
(一)sql中將是中文的為0,是數值的就是數值
我這里的數值直接是千分號的,所以進行了一些處理, 使用ISNUMERIC 函式如果列值是字符的話就輸出 1,是數字就直接輸出數字
如果使用千分號格式的數值,對他進行直接強轉為int或是 decimal的話會直接報錯的,

所以最好是強轉的同時 再CAST 給 as money 一下 ,正確做法是
select convert(decimal(16,2),cast('5,222.01' as money))

好了步入正題!sql中將是中文的為0,是數值的就是數值
select
sum(
case when ISNUMERIC(convert(decimal(16,2),cast('5,222.01' as money),1))=1
then CONVERT( decimal(16,2),convert(decimal(16,2),cast('5,222.01' as money),1))
else 0 end
)
運行結果

(二)sql 中如何將 千分號數值,轉化成decimal型,或int型計算

select convert(decimal(16,2),cast('5,222.01' as money),1)
(三)SQL 將int型,或decimal型 轉為千分號格式

select convert(varchar(20),cast('5222.01' as money),1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/193772.html
標籤:其他
上一篇:論大資料倉庫的事務處理之法
