当前位置: 代码迷 >> Oracle技术 >> ,关于递归的有关问题
  详细解决方案

,关于递归的有关问题

热度:55   发布时间:2016-04-24 08:20:43.0
请教高手,关于递归的问题
有一个表 ID  GID
ID      GID
--      ---
1       0
2       0
3       1
4       3
5       2
6       3

GID是上级ID,GID有权限看所有子层的数据
现在想要查出结果为
ID   GID
--   ---
1    0
2    0
3    0
4    0
5    0
6    0
3    1
4    1
6    1
5    2
4    3
6    3

请教大神,要如何查出。。。
------解决方案--------------------
with t as(
select '1' id,'0' gid from dual
union all
select '2','0' from dual
union all
select '3','1' from dual
union all
select '4','3' from dual
union all
select '5','2' from dual
union all
select '6','3' from dual
)
select t.id, connect_by_root gid gid
  from t
 start with gid in (select gid from t)
connect by prior id = gid;
ID GID
-- ---
1  0
3  0
4  0
6  0
2  0
5  0
3  1
4  1
6  1
5  2
4  3
6  3
 
12 rows selected
  相关解决方案