oracle、子句实现递归查询

来源:互联网 发布:李彦宏 知乎 编辑:程序博客网 时间:2024/06/07 07:16

直接上代码:

    表:resource_types(id, father_type_id,name)

    select  t.id resource_type_id,      
   SUBSTR(translate(SYS_CONNECT_BY_PATH(translate(t.name,'-','tmp_'),'-'),'tmp_','-'),2) resource_type_name          
   from resource_types t    
   start with t.father_type_id is null          
   connect by t.father_type_id = prior t.id


结果集:

resource_type_id   resource_type_name

2                            黑色金属矿产品
3                            黑色金属矿产品-铁矿石
4                            黑色金属矿产品-铁矿石-磁铁矿
5                            黑色金属矿产品-铁矿石-赤铁矿
6                            黑色金属矿产品-铁矿石-褐铁矿
7                            黑色金属矿产品-铁矿石-菱铁矿
8                            黑色金属矿产品-锰矿石
9                            黑色金属矿产品-锰矿石-水锰矿
10                          黑色金属矿产品-锰矿石-褐锰矿
11                          黑色金属矿产品-锰矿石-软锰矿
12                          黑色金属矿产品-锰矿石-硬锰矿

0 0
原创粉丝点击