在oracle中关于树的sql

来源:互联网 发布:查公司数据的网站 编辑:程序博客网 时间:2024/05/16 01:11

表task,字段id_,name_
id_的数据如下形式:
1
1.1
1.1.1
1.1.1.2
1.2
1.2.1
...
10
10.1
10.1.1
10.2.1
10.2.1.1
10.2.1.1.1
10.2.1.1.2
.......

注:“.”标识父子的关系。
现在通过id_查询树结构的效果,并且知道此节点是否为叶子节点leaf。。?

 

语句如下:

select
id_ ,
name_ ,
(select count(id_) from  task where t.id_= substr(id_,0,INSTR((id_),'.',-1)-1) )  as  leaf,connect_by_isleaf from  task t 
  start with  t.id_ ='5' connect by prior
  t.id_= substr(t.id_,0,INSTR((t.id_),'.',-1)-1) order by t.id_

原创粉丝点击