当前位置: 代码迷 >> Oracle管理 >> 求教 怎么将一个字段查询出的多个结果拼接到一起
  详细解决方案

求教 怎么将一个字段查询出的多个结果拼接到一起

热度:202   发布时间:2016-04-24 04:12:13.0
求教 如何将一个字段查询出的多个结果拼接到一起
因为要确定一条数据,所以查询出多个结果的话会报错。
所以想问一下 如果将查询出的多个结果拼接到一起

下面的是语句

 (select wav.comment_text
          from wfl_approve_record_v wav
         where wav.instance_id =
               (select max(wwi.instance_id)
                  from wfl_workflow_instance wwi
                 where wwi.document_number = y.document_number)
           and exists (select 1
                  from wfl_workflow_deliver wwd
                 where wwd.recipient_id = wav.created_by
                   and wwd.workflow_id = wav.workflow_id)
           and exists (select wwd.workflow_id
                  from wfl_workflow_deliver wwd
                 where wwd.deliver_to_id = wav.created_by
                   and wwd.workflow_id = wav.workflow_id)) text,
------解决思路----------------------
listagg的好处是可以控制拼接的顺序和连接符
select listagg(comment_text,',') within group(order by creation_date) from (
select wav.comment_text,wav.creation_date
          from wfl_approve_record_v wav
         where wav.instance_id =
               (select max(wwi.instance_id)
                  from wfl_workflow_instance wwi
                 where wwi.document_number = y.document_number)
           and exists (select 1
                  from wfl_workflow_deliver wwd
                 where wwd.recipient_id = wav.created_by
                   and wwd.workflow_id = wav.workflow_id)
           and exists (select wwd.workflow_id
                  from wfl_workflow_deliver wwd
                 where wwd.deliver_to_id = wav.created_by
                   and wwd.workflow_id = wav.workflow_id)
)
  相关解决方案