参考#3:http://bbs.csdn.net/topics/390680263

解决方案 »

  1.   

    怎么了,我就执行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
     GROUP BY T3.RNUM
     order by t3.rnum;
    出错,其他SQL都好的
      

  2.   

    试下把T1.ID = T2.STR写成 t1.id||''=t2.str,zlloct前几天也帮我写了这个语句,运行出错,把这里改了就好了