我有一个表结构是这样的
aa bb
----------
A 010+011+020+021
B 020+021+030+031
C 010+011+030+031
AA 010+011
BB 020+021
CC 030+031有没有什么办法通过一个SQL变为这样?
aa bb
----------
A AA+BB
B BB+CC
C AA+CC
AA 010+011
BB 020+021
CC 030+031
谢谢了.
aa bb
----------
A 010+011+020+021
B 020+021+030+031
C 010+011+030+031
AA 010+011
BB 020+021
CC 030+031有没有什么办法通过一个SQL变为这样?
aa bb
----------
A AA+BB
B BB+CC
C AA+CC
AA 010+011
BB 020+021
CC 030+031
谢谢了.
aa bb cc
----------------------------
A 010+011+020+021 1
B 020+021+030+031 1
C 010+011+030+031 1
AA 010+011 2
BB 020+021 2
CC 030+031 2
aa bb cc
--------------------------
A AA+BB 1
B BB+CC 1
C AA+CC 1
AA 010+011 2
BB 020+021 2
CC 030+031 2
select c.aa,nvl(d.aa,c.bb),c.cc from t c,(select a.aa || '+' || b.aa aa,a.bb || '+' || b.bb bb,cc from t a,t b where a.cc=2 and b.cc=2) d where c.bb=d.bb(+)
aa bb cc
----------------------------
A 010+011+020+021 1
B 020+021+030+031 1
C 010+011+030+031 1
AA 010+011 2
BB 020+021 2
CC 030+031 2
DD 040+041 2
AA1 010 3
AA2 011 3
BB1 020 3
BB2 021 3
CC1 030 3
CC2 031 3
DD1 040 3
DD2 041 3
from (select c.aa,rownum rn
from (select aa
from t where instr(a.bb,bb)<>0 and cc=a.cc+1) c
) b
connect by rn=rn-1 start with rn=1
你试试吧
parent child
---------------
A AA
A BB
B BB
B CC
AA AA1
AA AA2
...
AA1 010
对于child没有对应parent的就认为是最底层结点。
当然,不知道你要做什么,也不知这样是否适合你的需要。