0

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

列表 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
4

1 回答 1

1

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

CONVERT(NUMERIC(18, 4),REPLACE( CASE WHEN LTRIM(RTRIM(PPRICE)) <> '' THEN 0 ELSE A END,'-','')) 
于 2013-10-03T17:28:57.503 回答