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

瞌觉兴国 2014-10-28 09:52:05
因为要确定一条数据,所以查询出多个结果的话会报错。
所以想问一下 如果将查询出的多个结果拼接到一起

下面的是语句

(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,
...全文
556 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
瞌觉兴国 2014-10-28
  • 打赏
  • 举报
回复
引用 2 楼 bw555 的回复:
select wmsys.wm_concat(comment_text) from (你的查询语句)
11g之后可以使用listagg
谢谢!
bw555 2014-10-28
  • 打赏
  • 举报
回复
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)
)
bw555 2014-10-28
  • 打赏
  • 举报
回复
select wmsys.wm_concat(comment_text) from (你的查询语句)
11g之后可以使用listagg
瞌觉兴国 2014-10-28
  • 打赏
  • 举报
回复
另外想问一下 我对语句进行排序为什么会报缺失右括号 (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) order by wav.creation_date) text, 如果将最外层的 ()text, 去掉的话是可以运行的。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧