日期:2014-05-17  浏览次数:20965 次

oracle 多条查询记录 结果连接
问题是这样:
   

SELECT
   so.process_instance_id,
(

   SELECT LTRIM(
   MAX(SYS_CONNECT_BY_PATH(wo, ',')), ',')  
  FROM (SELECT wo, RN, LEAD(RN) OVER(ORDER BY RN) RN1
          FROM (SELECT wo,
                       ROW_NUMBER() OVER(ORDER BY wo DESC) RN
                  FROM (
                           SELECT
                                     
                                     wi.workstep_name wo
                            FROM
                                workitem wi
                            WHERE
                              wi.status IN('I_ASSIGNED','I_AVAILABLE')
                           and wi.process_instance_id=so.process_instance_id
                          
                         )
                 )
         )
 START WITH RN1 IS NULL
CONNECT BY RN1 = PRIOR RN  
   
)  test 
FROM
    serviceordercpemacd so,
    processinstance pi  
WHERE
    so.process_instance_id=pi.process_instance_id

我的test想查到的结果是与serviceordercpemacd 相关的满足条件的所有workitem的名字,以‘,’连接成的字符串。但是我现在的sql是有问题的,错误提示是字符串的结果过长,这个是什么问题呢?或是谁可以给我一个可以使用的代码呢?
其中
SELECT
                                     
                              &