oracle 中start with ... connect by prior 子句的用法

原创
2017/03/01 16:05
阅读数 167

忍不了了,必须要搞清楚 oracle 中start with  ... connect by prior 子句的用法,每次都会忘记,必须写出来加深印象!!!

connect by 是结构化查询中用到的,其基本语法是: 

select ... from tablename start with 条件1 
connect by 条件2 
where 条件3;

假设table这张表是一个树形表 表中存在两个字段:org_id,parent_id 那么通过表示每一条记录的parent是谁,就可以兴城一个树状结构,用下面的语句可以取得这棵树的所有记录

select * from table
start with org_id = 1
connect by prior org_id = parent_id;

-- 其中,条件一是根节点的限定语句,这里可以放一个id(就形成一棵树),也可以放多个id(形成多棵树)
-- 条件二 是连接条件,其中用piror表示上一条记录,比如 connect by prior org_id = parent_id就是说上一条记录的Org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。
-- 条件三 是过滤条件,用于返回的所有记录进行过滤 

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部