oracle中to_number函数,使用了如何将字符串开头的0补省略?

SELECT substr('DF5811C4A0036', 1, 9)||(to_number(substr('DF5811C4A0036', -4, 4)) + 1) FROM DUAL;中让查询出的结果为DF5811C4A0037.或者是用其他的方法能实现加一的效果? 多谢!!

SELECT substr('DF5811C4A0036', 1, 9)||trim(to_char((to_number(substr('DF5811C4A0036', -4, 4)) + 1), '0000') ) FROM DUAL;

oracle中to number函数是将一个字符串转换为数字数据类型,使用格式为
TO_NUMBER(<value>[, <format>, <NLS parameter>]) RETURN NUMBER。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-13
改成这样就行了:
....|| to_char((to_number(substr('DF5811C4A0036', -4, 4)) + 1), '0000') from.....追问

可是这种方式最终的结果是DF5811C4A 0037,多了个空格。 有没有办法取消掉这个空格??

追答

再加个trim()函数就可以了。
trim(to_char((to_number(substr('DF5811C4A0036', -4, 4)) + 1), '0000') )

本回答被提问者和网友采纳
相似回答