start with connect by prior学习

这是oracle中的树查询,查询出来的数据会根据上下级组成树的结构。
select *
from mw_sys.mwt_pd_deps
start with obj_id = '63EBEC8E-E766-40D7-ACF4-FEA945102112-00042'
connect by prior obj_id = sjbm
这个是从 obj_id这个节点的数据开始 查询他及下面的子数据,这是正树。

select *
from mw_sys.mwt_pd_deps
start with obj_id = '63EBEC8E-E766-40D7-ACF4-FEA945102112-00042'
connect by prior sjbm = obj_id
这个是从obj_id这个节点的数据开始 查询他及上面的父数据,这是正树。

CONNECT BY子句说明每行数据将是按层次顺序检索,并规定将表中的数据连入树型结构的关系中。PRIORY运算符必须放置在连接关系的两列中某一个的前面。对于节点间的父子关系,PRIOR运算符在一侧表示父节点,在另一侧表示子节点,从而确定查找树结构是的顺序是自顶向下还是自底向上。在连接关系中,除了可以使用列名外,还允许使用列表达式。START WITH 子句为可选项,用来标识哪个节点作为查找树型结构的根节点。若该子句被省略,则表示所有满足查询条件的行作为根节点。

注意:无论正树还是倒树, 关键就在于connect by的条件.
正树: 必须是 ‘父’= prior ‘子’
倒树: 必须是 ‘子’= prior ‘父’
posted @ 2013-12-26 11:30  Public_String  阅读(149)  评论(0编辑  收藏  举报