oracle中to_number函数,使用了如何将字符串开头的0补省略?
SELECTsubstr('DF5811C4A0036',1,9)||(to_number(substr('DF5811C4A0036',-4,4))+1)FROMDUA...
SELECT substr('DF5811C4A0036', 1, 9)||(to_number(substr('DF5811C4A0036', -4, 4)) + 1) FROM DUAL;中让查询出的结果为DF5811C4A0037.或者是用其他的方法能实现加一的效果? 多谢!!
展开
2个回答
展开全部
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。
oracle中to number函数是将一个字符串转换为数字数据类型,使用格式为
TO_NUMBER(<value>[, <format>, <NLS parameter>]) RETURN NUMBER。
展开全部
改成这样就行了:
....|| to_char((to_number(substr('DF5811C4A0036', -4, 4)) + 1), '0000') from.....
....|| 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') )
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询