Oracle递归查询SQL

部门表T: ID,PID  

--查询所有部门
select * from T t;
--向下找包含自己
select * from T start WITH id='?' connect by prior id=pid ;
--向下找不包含自己
select * from T start WITH pid='?' connect by prior id=pid ;
--向上找包含自己
select * from T start WITH id='?' connect by prior pid=id ;
--查询当前部门下所有的一级子部门
select * from T where PID='?'

总结:若是向上显示,则prior后面跟的是父键列,若是向下显示,则prior后面跟的是子键列。

猜你喜欢

转载自well-lf.iteye.com/blog/1906524