Oracle中的LISTAGG函数用于将多行数据连接成一个单一的字符串,常用于将多行数据聚合为一个字符串,可以在SELECT查询中使用。
语法: LISTAGG (列名, 分隔符) WITHIN GROUP (ORDER BY 列名)
参数解释:
示例: 假设有以下表结构: 表名:employees
employee_id | department_id | employee_name |
---|---|---|
1 | 101 | John |
2 | 101 | Jane |
3 | 102 | Mike |
4 | 103 | Sarah |
要将部门ID为101的员工姓名连接成一个字符串,以逗号分隔,可以使用以下查询: SELECT department_id, LISTAGG(employee_name, ‘,’) WITHIN GROUP (ORDER BY employee_id) AS employee_names FROM employees WHERE department_id = 101 GROUP BY department_id;
查询结果:
department_id | employee_names |
---|---|
101 | John, Jane |
以上查询将部门ID为101的员工姓名连接成一个字符串,并使用逗号分隔。在连接之前,按照员工ID进行了排序。