现在报表统计需要将多行数据转行成一行记录。
目前结果:
客户ID    客户姓名   问题序号    答案内容    SEQ
100034257 133503        1            2        1
100034257 133503        1            3        2
100034257 133503        2            3        2
100034257 133503        3            2        1
100034257 133503        3            4        2
100034258 133504        1            2        1
100034258 133504        2            3        1
100034258 133504        3            4        1即将同一客户ID和问题序号相同的记录用一条记录实现,答案内容通过字符串拼接实现
想实现结果:
客户ID    客户姓名   问题序号    答案内容    
100034257 133503        1            23       
100034257 133503        2            3         
100034257 133503        3            24             
100034258 133504        1            2        
100034258 133504        2            3        
100034258 133504        3            4        

解决方案 »

  1.   

    select id,name,qid,
      replace(max(sys_connect_by_path(result,',')),',','')result
    from (
      select tt.*,row_number()over(partition by id,qid order by rownum)rn from tt)
    start with rn=1
    connect by prior rn=rn-1
    group by id,name,qid
      

  2.   

    select 客户ID, 客户姓名, 问题序号, answer 答案内容 
         from 
         (select temp.*, replace(sys_connect_by_path(答案内容,'#'),'#','') answer 
                 from 
                 (select tt.*, row_number() over(partition by 客户ID,客户姓名,问题序号 order by seq asc) rn 
                  from tt) temp 
                 start with rn=1 connect by prior rn=rn-1) 
         where rn=1