select cola, max(substr(sys_connect_by_path(colb, '+'), 2)) colb from (
   select cola, colb, colc, lead(colc) over(partition by cola order by colc) cold from (
   select cola, colb, row_number() over(order by cola, colb) colc from tab) )
  start with cold is null
  connect by prior colc=cold
 group by cola;

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4161/4161213.xml?temp=.9793054
    本版精华区就有,要善加利用论坛资源
      

  2.   

    select code,max(sys_connect_by_path(name,';')) result
    from (select code,name,
                 (row_number() over(order by code,name desc)
                 + dense_rank() over(order by code)) rn,
                 max(name) over(partition by code) qs
          from t_bi_branch
    )
     start with name = qs
     connect by rn-1 = prior rn
     group by code