表a:
a_usr_id(字符串型,关联表b的usr_id)
123,124,125表b:
usr_id ,   usr_name,
123        name1
124        name2
125        name3直接用用sql语句,不用存储过程如何取得这样的数据集合:name1,name2,name3

解决方案 »

  1.   

    不建议用一句话SQL,可读性与通用性都不是很好
    select sID ,  max(substr(sys_connect_by_path(sNAME, ','), 2))  sNAME 
      from (select sID ,  sNAME, cID, lead(cID) over(partition by sID order by cID desc) fID  
           from (select sID ,  sNAME, rownum cID 
             from (select a.a_usr_id sID, b.user_name sName from a, b where instr(b.usr_id, a.a_usr_id) > 0 order by a.a_usr_id) order by sID ,  sNAME))
    start with fID is null
    connect by prior cID = fID
    group by sID ;