select down.downparaversionid || '|' || e.unionno,

       down.downparaversion,

       e.unionno,

       listagg(o.organname, ',') within group(order by e.organno) a1,

       listagg(case

                 when e.yctorganno is null then

                  ''

                 when e.yctorganno = 'null' then

                  ''

                 else

                  e.yctorganno

               end,

               ',') within group(order by e.organno) a2,

       e.defineid,

       to_char(e.definedate, 'yyyy-mm-dd'),

       e.auditid,

       to_char(e.auditdate, 'yyyy-mm-dd'),

       e.auditstatus

  from tb_empcardunion e, tb_downparaversion down, tb_organ o

 where e.downparaversionid = down.downparaversionid

   and e.organno = o.organno

 group by down.downparaversionid,

          down.downparaversion,

          e.unionno,

          e.defineid,

          to_char(e.definedate, 'yyyy-mm-dd'),

          e.auditid,

          to_char(e.auditdate, 'yyyy-mm-dd'),

          e.auditstatus