解决方案 »

  1.   

    select * from test
    connect by prior id=PARENT_ID
    start with PARENT_ID=0
    order siblings by id
      

  2.   

    问题是起始点不好找啊,起始点需要根据一个给定的CODE来查找
      

  3.   

    start with PARENT_ID=0
    这句可以修改为这样
    start with code=‘你指定的code’
      

  4.   

    是这样的,指定一个code,但是我要得到的是这个code所属的从根节点开始的完整的树。
      

  5.   

    select * from test
    connect by prior id=PARENT_ID
    start with code=‘code’
    --楼主可以用这个connect by循环遍历树,这个prior id = parent_id就是父节点往子节点循环。
      

  6.   

    告诉怎么改都不行,还得把替换的结果写出来,这年头分真不好拿了
    select * from test
    connect by prior id=PARENT_ID
    start with code='你指定的code'
    order siblings by id
      

  7.   

    可能我没有说清楚,如果start with code=‘指定的code’
    这样查询出的结果是指定code这个节点,及其所有子节点数据
    但是我要的结果是包含指定code节点的一颗完整的树,
    即还要向上找,找到code的父节点、父节点的父节点、直到找到根节点。
    ID    CODE    PARENT_ID 
    1         a                       0
    2         a1                     1
    3         a2                     1
    4         a11                   2
    5         a12                   2
    6          a21                   3举例:制定code为a2,要查找的结果为
    ID   CODE    PARENT_ID
    1         a                  0
    3         a2                1                   
    6         a21               3
      

  8.   

    先反向构建树,查找根节点,在按树形查询
    select * from test T
    connect by prior id=PARENT_ID
    start with PARENT_ID=0
        and  code in (select code from test connect by id=prior PARENT_ID start with code='你指定的code')
    order siblings by id