忍不了了,必须要搞清楚 oracle 中start with ... connect by prior 子句的用法,每次都会忘记,必须写出来加深印象!!!
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,即本记录的父亲是上一条记录。 -- 条件三 是过滤条件,用于返回的所有记录进行过滤
原文地址:https://www.jb51.cc/oracle/210367.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。