在DB2 SQL查询中,如何用空格替换字符串中的前导零以保持固定长度?

时间:2015-11-13 11:21:53

标签: sql db2

1                                    
------------------
YYY100.00XXX
YYY025.00XXX
YYY005.00XXX

^上面的选择来自一个如下所示的查询:

SELECT CAST(STRING1 AS CHAR(3)) ||
       CAST(DECIMAL1 AS CHAR(6)) ||
       CAST(STRING2 AS CHAR(3))
FROM TABLE;

我的问题是" 025.00"和" 005.00" - 我需要它是" 25.00"和" 5.00"分别 - 前导零需要用空格替换而不删除,以便查询如下所示:

1                                    
------------------
YYY100.00XXX
YYY 25.00XXX
YYY  5.00XXX

最好的方法是什么?

编辑:我在DB2 v8.2.2上

1 个答案:

答案 0 :(得分:0)

我认为问题是转换为char(6)。要执行您想要的操作,请使用varchar()lpad()

SELECT CAST(STRING1 AS CHAR(3)) ||
       LPAD(CAST(DECIMAL1 AS VARCHAR(6)), 6, ' ') ||
       CAST(STRING2 AS CHAR(3))
FROM TABLE;