使用SUBSTRING截断前导零

时间:2016-03-17 18:38:42

标签: sql db2 substr

该列中的一个值是
089-002007

我希望在' - '

之后提取所有数字
SELECT SUBSTR(EMP_NO,5)
FROM Table_Name  

然而,我得到的输出为'2007',前导零被截断。我有多个值,在' - '之后以0开头。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

看起来它隐含地将结果更改为int,因此切断了前导零。我建议CAST-ing SELECT

SELECT CAST(SUBSTR(EMP_NO,5) AS VARCHAR(10))
FROM Table_Name  

答案 1 :(得分:0)

DB2的哪个平台和版本?

你应该得到' 002007'给出你已经展示的代码。

SUBSTR()的输出已经是varchar。

DBMS不会将其从varchar更改为int,除非您尝试将其视为int。

select substr('089-002007',5)
from sysibm.sysdummy1        

返回

SUBSTR
002007

另一方面,

select substr('089-002007',5) + 0
from sysibm.sysdummy1        

返回

Numeric Expression
           2,007