今天遇到一个开发的问题,以前没遇到过。希望有经验的帮帮忙呀。想通过一个id遍历下面所有节点,如下表:id    paraentID
1         2
1         3
1         4
2         5
2         6
3         7注:最好一条简单的语句就能实现

解决方案 »

  1.   

    select id, paraentId from t connect by prior id = paraentId
      

  2.   

    楼上的反了
    select id, paraentId from t connect by  id = prior paraentId
      

  3.   

    楼上的反了
    select id, paraentId from t connect by  id = prior paraentId
      

  4.   

    呵呵呵,这个表设计的很奇特,所以让1楼的误会了。
    id    paraentID 
    1        2 
    1        3 
    1        4 
    这里应该改成
    id    paraentID 
    2        1 
    3        1 
    4        1 
    就好理解一些。所以也就需要反过来了select id, paraentId from t connect by id = prior paraentID
      

  5.   

    这个是Oracle的一个层次结构问题.
    解决的方法如下:
    首先你的节点和层次是这样的.
    SELECT level,rpad(’-',level,’-') || id tree, sys_connect_by_path(id,’/') Path, connect_by_root id 
    from hierarchy 
    start with parentId is 1
    connect by parentId = prior id;你的这个表格正好是倒序。
      

  6.   

    select id, paraentId from t connect by prior id = paraentId
      

  7.   

    oracle 特殊的语法,就是排序不方便