我正在构建一个本机存储过程..其中一个字段是通过组合(连接)5个值来派生的。这5个值中的3个是字符字段,2个是压缩十进制。在写入表格之前,我需要将它们组合成1个字段。
我不确定如何在SP中将任何数字转换为压缩十进制数(COMP-3相当于COBOL)。
我尝试了DEC()函数,但没有给出预期的结果。
我正在使用DB2 V11
如果有其他方法,请告诉我。
谢谢..
答案 0 :(得分: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