VARCHAR到DB2中十进制转换(Varchar to Decimal conversion in

2019-10-20 00:01发布

我想一个转换varchardecimaldb2但我得到一个错误

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”的字符串参数中。 SQLSTATE = 22018

Answer 1:

尝试做这样

SELECT CAST(ROUND(COALESCE(TRIM(AMOUNT),0),3) AS DECIMAL(31,3))
FROM TABLENAME


Answer 2:

你确定你的输入值具有相同的区域相对应。 我的意思是减号,负或MS Word中减去? 怎么样的小数点分隔符? 在一些语言中有一个逗号,而不是一个点。

聚结功能检索来自参数的第一个非空值。 在这个例子:

coalesce (amount, 0)

如果量为null,则返回0。

你确定你正在传递一个空值,或者一个字符串中的字符“NULL”,因为在这种情况下,你必须转换“NULL”“0”与替换功能。

replace (amount, 'NULL', '0')


文章来源: Varchar to Decimal conversion in db2
标签: sql casting db2