2014-02-19 40 views
1

我在数据库中有一列,如;将逗号分隔的varchar转换为十进制

new_profittl 
------------ 
45,1000 
84,0400 
156,6500 
169,1800 
... 

我的代码;

SELECT SUM(CAST(new_profittl as DECIMAL(18,2))) 
FROM new_hotelreservation AS R 
WHERE DATEADD(hour, DATEDIFF(hour, getUTCdate(), GETDATE()),R.new_salesdate) 
     BETWEEN @bas AND @bit AND R.statecode=0 

我必须总结这个字段。该字段是NVARCHAR,用逗号分隔,而不是点。所以我不能总结这个领域。我试图转换或转换为十进制,但它没有。它给出了一个错误'错误转换数据类型nvarchar数字。'。

我怎么能总结这个领域?

回答

2

从短期来看,这应该做的伎俩:

sum(cast(replace(new_profitt1, ',', '.') as decimal(18,2))) 

不过,我可以看到任何数量的comlications从这个即将到来的(多个逗号,没有逗号,嵌入的空格,等等,等等) ,请留意一下。

相关问题