oracle 中递归查询语句

来源:互联网 发布:java 消息推送 编辑:程序博客网 时间:2024/05/09 17:02

 oracle 9i 中支持递归查询,当表中用到自身关联时,用sql语句就可以构建树形结构,十分方便!

如:

table department

id     parent_id     name

1      0                    ###公司

2      1     市场部

3 1     技术部

4 3     研发部

5 3     网络部

6 3     售后服务部

7 1     财务部

只需用下面一句sql查询即可构建出树形结构

select department.id,rpad(' ',level*3-2,' ')||'├'||department.name     from department
        start with parent_id ='0'
        connect by prior department.oid=department.parent_id

查询结果如下所示:

1   |-###公司

2          |-市场部

3     |-技术部

4           |-研发部

5              |-网络部

6              |-售后服务部

7        |-财务部

在自身关联表中用于递归查询子节点非常方便,将条件反转即可往上递归查询父节点。