select id,substr(sys_connect_by_path(name,','),2) allname from a 
start with id = 1 
connect by id = prior id +1;

解决方案 »

  1.   

    SQL> SELECT ID,PID,NAME FROM A ORDER BY ID;ID    PID        NAME
    ----- ---------- ----------
    1     0          我
    2     1          是
    3     2          谁
    4     3          啊
    5     4          ?SQL> select id,substr(sys_connect_by_path(name,','),2) allname from a
      2  start with id = 1
      3  connect by id = prior id +1;ID    ALLNAME
    ----- ------------------------------------------------------------------------------
    1     我
    2     我,是
    3     我,是,谁
    4     我,是,谁,啊
    5     我,是,谁,啊,?SQL>
      

  2.   

    SQL> select id,  substr(SYS_CONNECT_BY_PATH(name,','),2)  from f_tree start with pid = 0 connect by prior id =  pid
      2  /        ID SUBSTR(SYS_CONNECT_BY_PATH(NAM
    ---------- --------------------------------------------------------------------------------
             1 张三
             2 张三,李四
             3 张三,李四,王五
      

  3.   

    sbaz(万神渡劫)兄,阐述自己的观点最好还是列出依据来,OK?
    我无意指责你什么,只是你说的话有失厚道。
      

  4.   

    不好意思,说话语气过重了。
    connect by id = prior id +1;这个条件的话确实不如猫的好。
    如果里面的记录不是排的这么有规律的话,你这个条件就不适用了。以后我会改正我冲动的毛病,多谢指教。