日期:2014-05-16  浏览次数:20385 次

Oracle Connect By使用
oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:

select ... from <TableName> 
where <Conditional-1>
start with <Conditional-2>
connect by <Conditional-3>
where <Conditional-4>; 
;

<Conditional-1>:过滤条件,用于对返回的所有记录进行过滤。
<Conditional-2>:查询结果重起始根结点的限定条件。
<Conditional-3>:连接条件:COND2是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR ID=PRAENTID就是说上一条记录的ID是本条记录的PRAENTID,即本记录的父亲是上一条记录。
<Conditional-4>是过滤条件,用于对返回的所有记录进行过滤。

例子:把系统自带的emp表利用上级直接管理者的关系展现出来:
select a.*,level
 from scott.emp a
 start with empno = 7839
connect by prior empno = mgr ;