日期:2014-05-16  浏览次数:20682 次

求指教,这样的语句怎么写
人员信息表一
人员姓名  人员id
A           1
B           2
C           3
...         ...

查询出来的表2
人员id
1,2,3
1,2
1,3
1
2         (数据出现无顺序)

现在要求把查询出来的表2显示成这样
人员姓名
A,B,C
A,B
A,C
A
B
请问这样的语句该怎么写啊

------解决方案--------------------
引用:
补充一下人员姓名都是汉字



SELECT LTRIM(MAX(SYS_CONNECT_BY_PATH(T3.NAME, ',')), ',') name
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY T2.RNUM order by 'x') RN,
               T2.RNUM,
               t1.name
          FROM T1 T1,
               (SELECT T.RNUM, REGEXP_SUBSTR(T.id, '[^,]+', 1, LEVEL) STR
                  FROM (SELECT t.id, ROWNUM RNUM FROM T2 T) T
                CONNECT BY LEVEL <=
                           (LENGTH(T.id) - LENGTH(REPLACE(T.id, ',', ''))) /
                           LENGTH(',') + 1
                       AND PRIOR RNUM = RNUM
                       AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL) T2
         WHERE T1.ID = T2.STR) T3
 START WITH T3.RN = 1
CONNECT BY PRIOR RN = RN - 1
       AND PRIOR T3.RNUM = T3.RNUM