oracle函数listagg的使用说明(分组后连接字段)

时间:2022-03-16 15:12:31

关于oracle函数listagg的使用说明

工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来。

如图,原始数据是这样的:

oracle函数listagg的使用说明(分组后连接字段)

客户希望能够实现这样的汇总合并:

oracle函数listagg的使用说明(分组后连接字段)

那么通常我会使用listagg这个函数,但是好多网上都是系统的全面的介绍listagg这个函数的使用方法,看起来很费力气。在这里我简明扼要的说明一下

实现这个需求的语句是这样的:

select name,
listagg(ddate,' / ') within group (order by  name) as ddate
from aa
group by name

需要注意的事项如下:

1. 必须得分组,也就是说group  by是必须的。

2. listagg函数的第一个参数是需要进行枚举的字段,也就是ddate;第二个参数是枚举数值之间的分隔符;同时还需要进行排序和分组within group (order by name)

本文转自:http://www.2cto.com/database/201304/204096.html