设为首页 加入收藏

TOP

oracle中ConnectBy用法介绍
2015-11-21 02:10:01 来源: 作者: 【 】 浏览:4
Tags:oracle ConnectBy 用法 介绍

为解决oracle中自连接查询不适合操作大表的情况,采用connect by 方式实现。oracle中可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 在结构化查询中应用。

基本语法:

select ... from
where
connect by

start with

?

connect by 和start with的先后顺序可以调换

其中:

Conditional1是过滤条件,用于对返回的所有记录进行过滤。
Conditional2是连接条件

Conditional3是过滤条件,用于对返回的所有记录进行过滤。

?

select * From emp; 其中empno(员工编号),mgr(经理编号)

\

?

可以对其中员工和经理对应关系整理如下:其中下一级节点的经理号是上一级的员工号

\

查询语句:

SQL> select level 级数 ,connect_by_isleaf 是否叶子 , ename 员工姓名 ,mgr 经理号 from emp connect by prior empno=mgr start with mgr is null;

?

\

?

level,connect_by_isleaf,connect_by_iscycle伪列

level 就是这个数据属于哪一个等级

connect_by_isleaf 就是树的叶子节点

connect_by_iscycle 导致出现死循环的那个树枝

prior运算符必须放置在连接关系的两列中某一个的前面。对于节点间的父子关系,prior运算符在一侧表示父节点,在另一侧表示子节点,从而确定查找树结构是的顺序是自顶向下还是自底向上

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关闭数据库时SHUTDOWN:waitingfor.. 下一篇redis集群主备模式部署

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: