2014-02-19 79 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從這個即將到來的(多個逗號,沒有逗號,嵌入的空格,等等,等等) ,請留意一下。

相關問題