首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle 运用substr对一个字符串根据逗号来分段截取

2013-01-12 
oracle 使用substr对一个字符串根据逗号来分段截取有一个字符串abc,def,mns,opq,怎么能把他同过中间的‘,

oracle 使用substr对一个字符串根据逗号来分段截取
有一个字符串'abc,def,mns,opq',怎么能把他同过中间的‘,’截取成4个字符串abc、def、mns和opq了?
[解决办法]
select SUBSTR('abc,def,mns,opq',1,3)
[解决办法]
'、'
[解决办法]
SUBSTR('abc,def,mns,opq',5,7)
[解决办法]
'、'
[解决办法]
SUBSTR('abc,def,mns,opq',9,11)
[解决办法]
'、'
[解决办法]
SUBSTR('abc,def,mns,opq',13,15) FROM DUAL
[解决办法]


with t1 as 
(
     select 1 c1,'abc,def,mns,opq' c2 from dual 
)

select distinct c1,replace(regexp_substr(c2,'[^,]+',1,level),',',' ') c2
from t1 
connect by level<=length(c2)-length(replace(c2,',',''))+1
order by c1


     c1    c2
-------------------
1    1    abc
2    1    def
3    1    mns
4    1    opq

热点排行