listagg函数的用法
时间: 2023-10-28 13:40:25 浏览: 84
【Oracle】LISTAGG函数的使用.pdf
Listagg函数是Oracle SQL中的聚合函数,用于将一列数据进行合并成一个字符串,常用于将多个值合并为一个值并进行聚合统计。
语法:
LISTAGG(column_name, delimiter) WITHIN GROUP (ORDER BY order_column_name)
参数说明:
- column_name:需要合并的列名
- delimiter:合并后的字符串分隔符
- order_column_name:可选参数,用于指定合并后的数据的排序方式
示例:
假设有一个表student,包含以下数据:
| name | subject |
|---------|---------|
| Alice | Math |
| Alice | English |
| Bob | Math |
| Bob | Science |
| Charlie | Math |
使用Listagg函数将同名学生的科目合并成一个字符串,并按照科目名称排序:
SELECT name, LISTAGG(subject, ',') WITHIN GROUP (ORDER BY subject) AS subjects
FROM student
GROUP BY name;
结果如下:
| name | subjects |
|---------|------------------|
| Alice | English,Math |
| Bob | Math,Science |
| Charlie | Math |
可以看到,同名学生的科目已经被合并成了一个字符串,并按照科目名称排序。
阅读全文