2013-10-03 32 views
0

我有一些數據類型轉換問題。無法將varchar轉換爲數字數據類型

列表B是varchar
的原始數據要擺脫'-',我用REPLACE(PPRICE,'-','')
列表A是varchar爲好。

然而,當我想

CONVERT(numeric(18, 4),REPLACE(PPRICE,'-','')) 

SQL Server中的數據類型轉換爲數字(18,4)不會讓我這樣做。

有誰知道爲什麼?

順便說一句,列表中的某些值是空的。

A B 
1800 1800 
75.44 75.44 
75.44 75.44 
20  000020- 
25  000025- 
250 250 
+0

「SQL Server不會讓我這樣做。」你得到的錯誤是什麼?我沒有問題來轉換您列出的數據。 – EricZ

回答

1

看起來像轉換失敗,由於列表中的空值。使用case語句來滿足空數據的要求。

CONVERT(NUMERIC(18, 4),REPLACE(CASE WHEN LTRIM(RTRIM(PPRICE)) <> '' THEN 0 ELSE A END,'-','')) 
相關問題