Select id, name, p_id
  From table1
  Start With id = '19'
Connect By Prior p_id
 = id
现在显示的结果如下
-1,根结点
10,子节点2,12
12, 子节点1,-1
要让它显示成这种结果
-1,根结点
12, 子节点1,-1
10,子节点2,12
如何处理阿
谢谢!

解决方案 »

  1.   

    加上order by level desc
    Select id, name, p_id
        From table1
        Start With id = '19'
        Connect By Prior p_id = id
        order by level desc;
      

  2.   

    添加了后,报错。
    说 0ra-01791:不是 selected 表达式!~~
      

  3.   

    SQL> select id,name,p_id from t1 start with id=1111 connect by prior p_id=id;        ID NAME             P_ID
    ---------- ---------- ----------
          1111 node_l3_1         111
           111 node_l2_1          11
            11 node_l1_1          -1
            -1 root nodeSQL> select id,name,p_id from t1 start with id=1111 connect by prior p_id=id order by level desc;        ID NAME             P_ID
    ---------- ---------- ----------
            -1 root node
            11 node_l1_1          -1
           111 node_l2_1          11
          1111 node_l3_1         111
      

  4.   

    感动阿。我这是oracle 9i.select id,name,p_id,level from t1 start with id=1111 connect by prior p_id=id order by level desc;可以了。
    谢谢!~~~~~~
    结账!~~