SYSTEM@dp > with t as (select rownum rn,trim(regexp_substr('a,b,c,d,e', '[^,]+', 1, level)) x from dual
connect by level <= length(regexp_replace('a,b,c,d,e','[^,]*'))+1)
,m as (select sys_connect_by_path(x,',')||',' p,x,level from t where level<=(select count(rn)/2 from t) connect by prior rn<rn)
,n as (select trim(both ',' from p) j,(select wm_concat(x) from t where instr(m.p,','||x||',')=0) k from m order by p)
select j col1,k col2 from n union select k ,j from n;
2 3 4 5
COL1 COL2
---------- ----------
a b,c,d,e
a,b c,d,e
a,b,c d,e
a,b,c,d e
a,b,c,e d
a,b,d c,e
a,b,d,e c
a,b,e c,d
a,c b,d,e
a,c,d b,e
a,c,d,e b
a,c,e b,d
a,d b,c,e
a,d,e b,c
a,e b,c,d
b a,c,d,e
b,c a,d,e
b,c,d a,e
b,c,d,e a
b,c,e a,d
b,d a,c,e
b,d,e a,c
b,e a,c,d
c a,b,d,e
c,d a,b,e
c,d,e a,b
c,e a,b,d
d a,b,c,e
d,e a,b,c
e a,b,c,d
30 rows selected.
SYSTEM@dp > with t as (select rownum rn,trim(regexp_substr('a,b,c,d,e,f', '[^,]+', 1, level)) x from dual
connect by level <= length(regexp_replace('a,b,c,d,e,f','[^,]*'))+1)
,m as (select sys_connect_by_path(x,',')||',' p,x,level from t where level<=(select count(rn)/2 from t) connect by prior rn<rn)
,n as (select trim(both ',' from p) j,(select wm_concat(x) from t where instr(m.p,','||x||',')=0) k from m order by p)
select j col1,k col2 from n union select k,j from n;
2 3 4 5
COL1 COL2
---------- ----------
a b,c,d,e,f
a,b c,d,e,f
a,b,c d,e,f
a,b,c,d e,f
a,b,c,d,e f
a,b,c,d,f e
a,b,c,e d,f
a,b,c,e,f d
a,b,c,f d,e
a,b,d c,e,f
a,b,d,e c,f
a,b,d,e,f c
a,b,d,f c,e
a,b,e c,d,f
a,b,e,f c,d
a,b,f c,d,e
a,c b,d,e,f
a,c,d b,e,f
a,c,d,e b,f
a,c,d,e,f b
a,c,d,f b,e
a,c,e b,d,f
a,c,e,f b,d
a,c,f b,d,e
a,d b,c,e,f
a,d,e b,c,f
a,d,e,f b,c
a,d,f b,c,e
a,e b,c,d,f
a,e,f b,c,d
a,f b,c,d,e
b a,c,d,e,f
b,c a,d,e,f
b,c,d a,e,f
b,c,d,e a,f
b,c,d,e,f a
b,c,d,f a,e
b,c,e a,d,f
b,c,e,f a,d
b,c,f a,d,e
b,d a,c,e,f
b,d,e a,c,f
b,d,e,f a,c
b,d,f a,c,e
b,e a,c,d,f
b,e,f a,c,d
b,f a,c,d,e
c a,b,d,e,f
c,d a,b,e,f
c,d,e a,b,f
c,d,e,f a,b
c,d,f a,b,e
c,e a,b,d,f
c,e,f a,b,d
c,f a,b,d,e
d a,b,c,e,f
d,e a,b,c,f
d,e,f a,b,c
d,f a,b,c,e
e a,b,c,d,f
e,f a,b,c,d
f a,b,c,d,e
62 rows selected.
[ 本帖最后由 kingtsi 于 2010-4-9 13:56 编辑 ] |