我正在尝试将varchar
字段转换为decimal
中的db2
字段但我收到错误
AMOUNT
字段是varchar
字段,需要转换为decimal(31,3)
以下是我的查询
SELECT CAST(ROUND(TRIM(AMOUNT),3) AS DECIMAL(31,3))
FROM TABLENAME
注意:AMOUNT field (varchar)
也有NULL
值
样本值:
7.324088
-42.97209
854
NULL
6
6
350
-6
15.380584
1900
我收到以下错误:
在函数的字符串参数中找到无效字符 " DECFLOAT&#34 ;. SQLSTATE = 22018
答案 0 :(得分:4)
尝试做
SELECT CAST(ROUND(COALESCE(TRIM(AMOUNT),0),3) AS DECIMAL(31,3))
FROM TABLENAME
答案 1 :(得分:0)
您确定输入值与同一语言环境相对应吗?我的意思是减号减去或MS字减去?小数点分隔符怎么样?在某些语言中,有一个逗号而不是一个点。
coalesce函数从参数中检索第一个非null值。在示例中:
coalesce (amount, 0)
如果amount为null,则返回0.
您确定传递空值或字符为'NULL'的字符串,因为在这种情况下您必须使用替换函数将'NULL'转换为'0'。
replace (amount, 'NULL', '0')