如何在视图的SELECT查询中使用LISTAGG函数?
使用LISTAGG函数合并视图中的联系号码
示例数据
| id | 姓名 | 姓氏 | 联系号码 |
|---|---|---|---|
| 1 | john | khan | 111 |
| 1 | john | khan | 222 |
| 1 | john | khan | 333 |
| 2 | smith | mike | 55 |
| 2 | smith | mike | 66 |
期望结果
| id | 姓名 | 姓氏 | 联系号码 |
|---|---|---|---|
| 1 | john | khan | 111,222,333 |
| 2 | smith | mike | 55,66 |
实现SQL语句
结合LISTAGG函数与GROUP BY分组,即可将同一分组下的联系号码用逗号拼接:
SELECT id, 姓名, 姓氏, LISTAGG(联系号码, ',') WITHIN GROUP (ORDER BY 联系号码) AS 联系号码 FROM 你的视图名称 GROUP BY id, 姓名, 姓氏;
关键说明
LISTAGG(列名, 分隔符):定义要拼接的目标列和分隔符WITHIN GROUP (ORDER BY 列名):可选参数,用于指定拼接结果的排序逻辑GROUP BY:必须按id、姓名、姓氏分组,确保同组记录被聚合
内容的提问来源于stack exchange,提问作者Arifullah
相关产品推荐
相关产品推荐

