id 父id
1 0
2 1
3 1
4 2
5 3
6 3
7 5
比如:如果id=7
要求查询id=7与
(
select id from 表A
start with id=7
connect by prior 父id=id
)
的组合,比如
那么显示出来是:
id
7 7
7 5
7 3
7 1这个sql 应该如何写呢
1 0
2 1
3 1
4 2
5 3
6 3
7 5
比如:如果id=7
要求查询id=7与
(
select id from 表A
start with id=7
connect by prior 父id=id
)
的组合,比如
那么显示出来是:
id
7 7
7 5
7 3
7 1这个sql 应该如何写呢
解决方案 »
- 这个SQl语句有点难写,不会写~~呵呵,选择问题
- oracle队列问题?
- Oracle中自带Pro*c 的预编译器了吗?如何使用?先谢了!
- Oracle 10.1.0 regexp_substr问题
- 创建数据库级触发器报错 ORA-00942
- 如何在ORACLE 8i 中KILL掉某一普通用户的所有SESSION
- 如何将EXCEL表格导入到 oracle数据库中
- 这是什么错误阿?up有分
- 新学oracle各种问题,net service 配置
- shutdown后再次连接提示监听无法识别
- pl/sql中怎们把vchar(4000)的数据导入到long?(感谢!)
- 请教SQL老手,多表连接时,是不是最好都用JOIN,避免WHERE可能引起的歧义。
start with id=7
connect by prior fatid=id;
2 UNION
3 SELECT 7 ID,P_ID FROM SUB_PAR
4 START WITH ID=7
5 CONNECT BY PRIOR P_ID=ID; ID P_ID
---------- ----------
7 0
7 1
7 3
7 5
7 7SQL> SELECT * FROM SUB_PAR; ID P_ID
---------- ----------
1 0
2 1
3 1
4 2
5 3
6 3
7 5已选择7行。
他的解答和你的结果一致的啊!
SELECT ID,ID as P_ID FROM DUAL
where ID=7
UNION
SELECT 7 ID,P_ID FROM SUB_PAR
START WITH ID=7
CONNECT BY PRIOR P_ID=ID;和你的表达难道不一样?
里面是所有id的结果,也就是id in(1,2,3,4,5,6,7)的情况下的结果所以不能这样特殊的直接指定id=7
where 父id is not null
start with id=7
connect by prior 父id=id7 7
7 5
7 3
7 1
id 父id
1 0(表示无父id)
2 1
3 1
4 2
5 3
6 3
7 5
这个视图我希望查出的结果:
7 1
7 3
7 5
7 7
6 6
6 3
6 1
5 5
5 3
5 1
4 4
4 2
4 1
3 3
3 1
2 2
2 1
1 1
http://community.csdn.net/Expert/TopicView.asp?id=5569124
http://community.csdn.net/Expert/TopicView.asp?id=5569130大家帮个忙,三贴一并给分,谢谢了!!^_^