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 |-财务部
在自身关联表中用于递归查询子节点非常方便,将条件反转即可往上递归查询父节点。