栏目导航
热点推荐
- oracle查询表名、表的列名方法
- Oracle数据库迁移介绍
- 快速掌握删除Oracle 10g垃圾表的
- Oracle数据库如何处理临时数据?
- Oracle教程:如误添加数据文件如
- Oracle数据库安全基础知识
- Oracle新手最常碰到的6个错误及
- Oracle数据库的使用技巧五则
- 将Oracle中的数据更改后出错的解
- 在不安装Oracle客户端的情况下进
- 讲解Oracle数据库冷备份恢复的具
- 当数据积累到一定时间后执行会越
阅览排行
oracle实现递归查询
www.jz123.cn 2010-09-16 来源: 中国建站 责任编辑(袁袁) 我要投递新闻
一、建表
CREATE TABLE USERS.TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
)
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1'
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
二、格式
Select * from …. Where [结果过滤条件语句]
Start with [and起始条件过滤语句]
Connect by prior [and中间记录过滤条件语句]
三、查找所有下级
select * from tbl_test start with id=1 connect by prior id=pid
注意:此sql能查找id=1的数据的所有下级,写sql语句时要注意,因为是从id开始查找下级,所以connect by prior 子句的条件是id=pid
四、查找所有上级
select * from tbl_test start with id=5 connect by prior pid=id
因为是从id开始查找上级,所以connect by prior 子句的条件是pid=d
上一篇:启动oracle服务的批处理文件 下一篇:没有了