日期:2014-05-16 浏览次数:20506 次
测试数据使用hr方案中的employees表,没有的参考附件:
?
??? 查询本节点的下级节点:
select t.*,level from employees t connect by prior employee_id=manager_id start with employee_id='100' ;
使用说明:?
?? start with指示开始节点是哪个节点,employee_id是主键,表示唯一,一般从特定节点开始。如果使用manager_id标识开始节点,可能会从多个节点开始,会形成多颗树。
??? connect by标识连接关系。prior放到标识上级节点的字段旁,标识查上级节点;放到标识子节点的字段旁,标识查下级节点。prior代表递归查询,如果没有prior,只返回满足start with条件的值。
??? level是动态数据,是在形成树的过程,标识出是第几级的产生的。
?
附:使用connect by也可以产生重复数据如下:
select * from dual connect by level <=1000;
将产生1000条X