频道栏目
首页 > 资讯 > Oracle > 正文

Oracle用Start with...Connect By子句递归查询

12-03-27        来源:[db:作者]  
收藏   我要投稿

Oracle用Start with...Connect By子句递归查询 
 
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 
); 
 
插入测试数据: 
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'); 
 
从Root往树末梢递归 
select * from TBL_TEST 
start with id=1 
connect by prior id = pid 
 
从末梢往树ROOT递归 
select * from TBL_TEST 
start with id=5 
connect by prior pid = id 
 
 
 
 
作者 dhl004
相关TAG标签
上一篇:台积电:绝大多数7nm客户都会转向6nm_IT新闻_博客园
下一篇:最后一页
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站