oracle中to_number函数,使用了如何将字符串开头的0补省略?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。 参考技术A 改成这样就行了:
....|| 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') )
Oracle中使用to_number()函数,里面有文字怎么解决
你好!你可以通过过滤,把有文字的数据过滤掉!
文字过滤的话,可能需要用到正则表达式了!
如果不会的话,采纳本问题,新开设问题提问一下!
给你解决!
望采纳! 参考技术A 首先你得确认本应出现数字的地方字母是不是正常情况,如果是,要按照什么规则把字母处理成数字,比如字母a替换为1,b替换为2等等,如果不是,那就需要异常捕获了,对出现字母的情况进行异常处理,比如出现字母视为异常情况。视为0。 参考技术B 因为"9"代表任意一个数字(可以是0—9中任意一个数字),而"0 "只是表示在返回结果的前面或后面补0来达到格式中指定的长度。
以上是关于oracle中to_number函数,使用了如何将字符串开头的0补省略?的主要内容,如果未能解决你的问题,请参考以下文章