无法将varchar转换为数字数据类型

时间:2013-10-03 16:55:00

标签: sql-server type-conversion

我有一些数据类型转换问题。

列表B是varchar中的原始数据 为了摆脱'-',我使用了REPLACE(PPRICE,'-','')
列表A也在varchar中。

但是,当我想通过

将数据类型转换为数字(18,4)时
CONVERT(numeric(18, 4),REPLACE(PPRICE,'-',''))

SQL Server不允许我这样做。

有谁知道为什么?

顺便说一下,列表中的某些值是空的。

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

1 个答案:

答案 0 :(得分:1)

由于列表中的空值,看起来转换失败了。尝试使用case语句来满足空数据。

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