使用 SUBSTRING 截断前导零
Leading Zeros getting truncated using SUBSTRING
列中的一个值是
089-002007
我想提取'-'后的所有数字
SELECT SUBSTR(EMP_NO,5)
FROM Table_Name
但是,我得到的输出为“2007”,前导零被截断了。我有多个值,在“-”之后以 0 开头。
我该如何解决这个问题?
看起来它正在隐式地将结果更改为 int,因此切断了前导零。我建议 CAST-ing SELECT
SELECT CAST(SUBSTR(EMP_NO,5) AS VARCHAR(10))
FROM Table_Name
DB2 是什么平台和版本?
根据您显示的代码,您应该会得到“002007”。
SUBSTR()
的输出已经是varchar。
DBMS 不会将其从 varchar 更改为 int,除非您尝试将其视为 int。
select substr('089-002007',5)
from sysibm.sysdummy1
Returns
SUBSTR
002007
另一方面,
select substr('089-002007',5) + 0
from sysibm.sysdummy1
Returns
Numeric Expression
2,007
列中的一个值是
089-002007
我想提取'-'后的所有数字
SELECT SUBSTR(EMP_NO,5)
FROM Table_Name
但是,我得到的输出为“2007”,前导零被截断了。我有多个值,在“-”之后以 0 开头。
我该如何解决这个问题?
看起来它正在隐式地将结果更改为 int,因此切断了前导零。我建议 CAST-ing SELECT
SELECT CAST(SUBSTR(EMP_NO,5) AS VARCHAR(10))
FROM Table_Name
DB2 是什么平台和版本?
根据您显示的代码,您应该会得到“002007”。
SUBSTR()
的输出已经是varchar。
DBMS 不会将其从 varchar 更改为 int,除非您尝试将其视为 int。
select substr('089-002007',5)
from sysibm.sysdummy1
Returns
SUBSTR
002007
另一方面,
select substr('089-002007',5) + 0
from sysibm.sysdummy1
Returns
Numeric Expression
2,007