要是我就用union拉倒 select * from( select a,b,' ' as c,' ' as d from tbl group by a,b union all select a,b, c,' ' as d from tbl group by a,b,c unoin all select a,b,c,d from tbl) order by a,b,c,d
SQL> select * from tb;A B C D -- -- -- -- 1 2 3 a 1 2 3 b 1 2 4 c 1 2 4 d 1 2 4 e 1 3 5 o 1 3 5 p 1 3 5 l 2 6 7 a 2 6 8 b 已选择10行。SQL> select distinct a,b,null,null from tb 2 union all 3 select distinct a,b,c,null from tb 4 union all 5 select distinct a,b,c,d from tb 6 order by 1,2,3 nulls first,4 nulls first;A B NU NU -- -- -- -- 1 2 1 2 3 1 2 3 a 1 2 3 b 1 2 4 1 2 4 c 1 2 4 d 1 2 4 e 1 3 1 3 5 1 3 5 l 1 3 5 o 1 3 5 p 2 6 2 6 7 2 6 7 a 2 6 8 2 6 8 b 已选择18行。
select * from(
select a,b,' ' as c,' ' as d from tbl group by a,b
union all
select a,b, c,' ' as d from tbl group by a,b,c
unoin all
select a,b,c,d from tbl)
order by a,b,c,d
-- -- -- --
1 2 3 a
1 2 3 b
1 2 4 c
1 2 4 d
1 2 4 e
1 3 5 o
1 3 5 p
1 3 5 l
2 6 7 a
2 6 8 b 已选择10行。SQL> select distinct a,b,null,null from tb
2 union all
3 select distinct a,b,c,null from tb
4 union all
5 select distinct a,b,c,d from tb
6 order by 1,2,3 nulls first,4 nulls first;A B NU NU
-- -- -- --
1 2
1 2 3
1 2 3 a
1 2 3 b
1 2 4
1 2 4 c
1 2 4 d
1 2 4 e
1 3
1 3 5
1 3 5 l
1 3 5 o
1 3 5 p
2 6
2 6 7
2 6 7 a
2 6 8
2 6 8 b 已选择18行。
第7.5节层次化查询 就讲这些东西,楼主有空看看吧!
比在这里问到的要全面。。
难道楼主给的表就是一个已经处理过一次的?
不知道楼主想要什么样的方法?
根据你给的 字段A是字段B的父节点
字段B是字段C的父节点
字段C是字段D的父节点 这样的规律 三楼的方法我觉得就是最好的了!