2016-12-13 57 views
0

我正在构建本机存储过程..其中一个字段是通过组合(连接)5个值派生的。这5个值中有3个是字符字段,2个是压缩十进制数。在我写入表格之前,我需要将它们合并到一个字段中。在存储过程中将数字转换为压缩十进制

我不知道如何将任何数字转换为SP中的压缩十进制(COMP-3等效的COBOL)。

我试过DEC()函数,但它没有给出预期的结果。

我使用的是DB2 V11

请让我知道,如果有任何其他的方法..

谢谢..

+0

你说明您正在使用哪个数据库管理系统? – McNets

+0

使用IBM DB2 V11 –

+0

请添加标签或将其添加到您的问题。 – McNets

回答

0
with tmp as 
(
    select 
    case when 
    case when trim(ifnull(valchar1, ''))='' then '0' else trim(valchar1) end || 
    case when trim(ifnull(valchar2, ''))='' then '0' else trim(valchar2) end || 
    case when trim(ifnull(valchar3, ''))='' then '0' else trim(valchar3) end || 
    valdec1 || valdec2 as NewVal 
    from your table 
) 
select 
cast(case NewVal ='' then null else NewVal end as dec(15, 2)) as NewvvalDec 
from tmp 
相关问题