这样怎么嵌套? ------解决方案-------------------- SELECT regexp_substr(col,'[^ ------解决方案-------------------- ]+',1,1),regexp_substr(col,'[^ ------解决方案-------------------- ]+',1,2),regexp_substr(col,'[^ ------解决方案-------------------- ]+',1,3),regexp_substr(col,'[^ ------解决方案-------------------- ]+',1,4) FROM
( SELECT regexp_substr('aaa ------解决方案-------------------- bbb ------解决方案-------------------- ccc ------解决方案-------------------- ddd,cccc ------解决方案-------------------- ddd ------解决方案-------------------- aaaa ------解决方案-------------------- fffff','[^,]+',1,1) col FROM dual
UNION ALL
SELECT regexp_substr('aaa ------解决方案-------------------- bbb ------解决方案-------------------- ccc ------解决方案-------------------- ddd,cccc ------解决方案-------------------- ddd ------解决方案-------------------- aaaa ------解决方案-------------------- fffff','[^,]+',1,2) FROM dual
)
死办法,如果个数不确定,就麻烦了。。。 ------解决方案--------------------
你自己再简单的修改一下即可
with t as
(select 'aaa ------解决方案-------------------- bbb ------解决方案-------------------- ccc ------解决方案-------------------- ddd,cccc ------解决方案-------------------- ddd ------解决方案-------------------- aaaa ------解决方案-------------------- fffff' book_nm from dual)
select rn, REGEXP_SUBSTR(str, '[^ ------解决方案-------------------- ]+', 1, LEVEL)
from (select rownum rn, REGEXP_SUBSTR(book_nm, '[^,]+', 1, LEVEL) STR
from (select rownum id, t.* from t) t1
connect by level <=
length(book_nm) - length(replace(book_nm, ',', '')) + 1
and id = prior id