我有一些数据类型转换问题。
列表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
答案 0 :(得分:1)
由于列表中的空值,看起来转换失败了。尝试使用case语句来满足空数据。
CONVERT(NUMERIC(18, 4),REPLACE( CASE WHEN LTRIM(RTRIM(PPRICE)) <> '' THEN 0 ELSE A END,'-',''))