Oracle用Start with...Connect By子句递归查询(还查出子句的子句)
来源:互联网 发布:化学物质数据库注册号 编辑:程序博客网 时间:2024/04/29 09:03
ORACLE 提供了一个有趣的功能 connect by 子句,它可以对具有家族树结构的分枝进行排序。它的用途有机构或公司的各层结构,财务的科目代码等。
要使用查询遍历,需要在将数据在基表中按照层次结构进行存储。比如一个组织机构就是这样的典型例子。
实现语句:
SELECT column
FROM table_name
START WITH column=value
CONNECT BY PRIOR 父主键=子外键
网上有朋友已经给了一个简洁的例子,就直接引用他的例子如下:
——————————————————————————————————————
Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。
创建示例表:
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
);
(
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');
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');
从Root往树末梢递归
select * from TBL_TEST
start with id=1
connect by prior id = pid
start with id=1
connect by prior id = pid
从末梢往树ROOT递归
select * from TBL_TEST
start with id=5
connect by prior pid = id
start with id=5
connect by prior pid = id
例子出处:http://blog.csdn.net/54powerman/archive/2006/04/03/649068.aspx
- Oracle用Start with...Connect By子句递归查询(还查出子句的子句)
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Oracle用Start with...Connect By子句递归查询
- Start with ... Connect By 子句递归查询
- Start with ... Connect By 子句递归查询
- Oracle Start with...Connect By子句递归查询
- ATL 7.0 自由线程的 Windows NT 服务不会创建 COM 对象
- 创建进程库函数fork
- 5月编程语言排行榜:javascript 上升到第八位, actionscript依然是23
- 数据库操作
- 隔离的块编号
- Oracle用Start with...Connect By子句递归查询(还查出子句的子句)
- Head First JavaScript中文版(第2页)
- Nginx 0.7.x + PHP 5.2.9(FastCGI)搭建胜过Apache十倍的Web服务器(第5版)
- C++模板技巧:编译期探测类成员
- IPSEC VPN 配置
- JAVA中静态数组与动态数组
- 如何应用Sql Server的扩展属性
- 从今天起开始记录学习心得
- 怎样才能捕获声卡中的声音