Oracle语句怎么截取和:之间的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle语句怎么截取和:之间的值?相关的知识,希望对你有一定的参考价值。

例子:12345:67:8ABC:0:9
取出12345和ABC

参考技术A 如果字段存的就是这个,那么这个应该是字符串吧,那么就分几步操作。
(1)定位,定位和:的位置,从现在来看有两种可能,第一种
这是两个字段,分别是12345:67:8和ABC:0:9,那就简单了肯定是1,所以这个也就不需要定位了,只需要定位第一个冒号的位置。
定位的函数应该是instr
第二种:12345:67:8ABC:0:9是一个字段的内容,那就麻烦一些,不过也能做,希望不是这样的,因为这个就要麻烦很多了。正则倒是能做,不过正则都要测试,我可没有相应的环境做测试。这里也就不写了,如果是这种,那么自己翻一翻正则函数的用法,应该能写出来。
(2)截取,如果是第一种,那么定位了第一个冒号位置以后,用这个位置-2,也就是
instr(字段,':',1)-2这就是截取的长度,
从第二位开始截取,截取这个长度就可以substr(字段,2,instr(字段,':',1)-2)
这样的话,12345:67:8换算到内部就是substr(12345:67:8,2,5(7-2)),【7-2说明5的来源,第一个冒号在第7位】,截取出来就是12345
还是那句话,如果是第二种可能,那么就要找每一个的位置,然后找在后面距离最近的冒号的位置,然后再一个个的截取操作,正则应该可以操作,不过我还是那句话,需要测试,意思和这个截取函数差不多,自己好好理解一下应该就能操作了。

以上是关于Oracle语句怎么截取和:之间的值?的主要内容,如果未能解决你的问题,请参考以下文章

急急急,Sql查询一个字段是不是存在某一个值,怎么写查询语句?

oracle语句实现截取数字前内容

oracle中 sql截取某个字符前面和后面的值

oracle 如何截取两个"-"之间的字符串

Oracle中的SQL语句的题目,求解答啊

oracle 10G数据库如何插入clob字段的值的简单语句sql语句