有时候查询的时候会进行拆分,对某串字符串进行拆分的时候可以用:
select regexp_substr('aaaaa,bbbb,cc,ddddd,ee','[^,]+',1,level)
from dual
connect by level <= regexp_count('aaaaa,bbbb,cc,ddddd,ee',',')+1;
对于表中的每一行进行拆分,则需自身与自身递归,但是connect by deptno = prior deptno 会报错误,因此需要使用prior dbms_random.value is not null 来欺骗oracle
例: select t.*,regexp_substr(t.ename,'[^,]+',1,level)
from emp_bak t
connect by level <= regexp_count(t.ename,',')+1
and t.ename = prior t.ename
and prior dbms_random.value is not null;