有一个表 ID GID
ID GID
-- ---
1 0
2 0
3 1
4 3
5 2
6 3GID是上级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请教大神,要如何查出
ID GID
-- ---
1 0
2 0
3 1
4 3
5 2
6 3GID是上级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请教大神,要如何查出
解决方案 »
- oracle无法打开的问题 ORA-01033
- 【PL/SQL应用求助】关于PL/SQL语句查询中如何SUM合并重复行为一行的问题?
- 求 oracle 10g R1 em 重建
- secureCRT远程到oracle服务器,如何翻出最近执行的SQL
- 想来日本工作的话,请联系
- 怎样将日前型数据转换成字符串
- 安装完Oracle8i后,无法创建数据库
- 请问pl/sql中在where in()子句里怎么使用字符串变量来传递查询条件?
- 执行imp时,出现“对象已存在”提示。解决办法讨论,欢迎大家来坐坐!
- job经常突然挂死,如何分析
- oracle脚本文件如何执行(不要在SQLPLUS及PLSQL中)
- 关于merge使用的问题
with
test as
(
select 1 as id , 0 as gid from dual
union all
select 2 as id , 1 as gid from dual
union all
select 3 as id , 0 as gid from dual
union all
select 4 as id , 0 as gid from dual
union all
select 5 as id , 2 as gid from dual
union all
select 6 as id , 3 as gid from dual
)
select * from test start with id =1 connect by prior id = gid
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