首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

,关于递归的有关问题

2013-01-07 
请教高手,关于递归的问题有一个表 IDGIDIDGID-----102031435263GID是上级ID,GID有权限看所有子层的数据现

请教高手,关于递归的问题
有一个表 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

热点排行
Bad Request.