该列中的一个值是
089-002007
我希望在' - '
之后提取所有数字SELECT SUBSTR(EMP_NO,5)
FROM Table_Name
然而,我得到的输出为'2007',前导零被截断。我有多个值,在' - '之后以0开头。
我该如何解决这个问题?
答案 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