DB2将DECIMAL转换成字符串

时间:2025-03-23 15:08:02

在DB2中类型转换可以用CAST函数,那么CAST配合CHAR使用应该可以转换成字符串,但CAST在将DECIMAL转换字符串时会有的小问题:

select char(cast(9.9 as decimal(8,2))) from sysibm.sysdummy1;
查询结果:000009.90 

因为decimal(8,2)的整数部分为6为,用char函数会不足位补0。

这是我们可以考虑使用RIGHT函数:

select right(trim(char(cast(9.9 as decimal(8,2)))),4) from sysibm.sysdummy1;
查询结果:9.90

        这个乍一看达到我们想要的结果了,但是如果“9.9 as decimal(8,2)”变成“99.99 as decimal(8,2)” ,那么right函数的第二个参数是否也得变?下面大家一起看看下面示例:

select trim(replace(strip(replace(char(cast(9.9 as decimal(8,2))),'0.','#'),L,'0'),'#','0.')) fld from sysibm.sysdummy1;
查询结果:9.90
上述方法主要是利用replace函数来处理下小数点,以及利用strip函数(语法 这不阐述了)去掉char函数处理的补位0