ITPub博客

首页 > 数据库 > Oracle > oracle 树查询

oracle 树查询

原创 Oracle 作者:jidongzheng 时间:2009-03-16 14:09:53 0 删除 编辑

取得整个树还是比较简单的.

select * from tab start with ... connect by ....

现在是想等到每一个叶子的根(最原始),

比较麻烦.还是想了个变通的办法.

使用oracle 的SYS_CONNECT_BY_PATH

[@more@]

示例:

CREATE OR REPLACE VIEW T_DEPARTMENT AS
select dept_id id,
dept_name name,
dept_desc DESCRIPTION,
case when level < 3 then null else parent_dept_id end M_DEPARTMENT,
substr(SYS_CONNECT_BY_PATH(dept_id,'/'),2,instr(SYS_CONNECT_BY_PATH(dept_id,'/'),'/',2,1)-2) M_BRANCHNAME
from USer_dept t
start with parent_dept_id = '#'
connect by PRIOR dept_id = parent_dept_id
order by level;

这样,就可以看到叶子节点及最终的父节点

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/197458/viewspace-1018817/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    152
  • 访问量
    724084