如何编写DB2 SQL实现多值合并到单个字段
DB2实现同组字段值拼接
原始数据
| Store | Fruit | Color |
|---|---|---|
| Abc | Apple | Red |
| Abc | Apple | Green |
| Abc | Grape | Black |
| Abc | Grape | Red |
| Abc | Grape | Green |
| Def | Apple | Red |
| Def | Grape | Black |
| Def | Grape | Green |
期望结果
| Store | Fruit | Color |
|---|---|---|
| Abc | Apple | Red,Green |
| Abc | Grape | Black,Red,Green |
| Def | Apple | Red |
| Def | Grape | Black,Green |
解决方案
使用DB2内置的LISTAGG聚合函数即可实现,该函数专门用于将分组内的字符串值拼接成单个字符串:
SELECT Store, Fruit, LISTAGG(Color, ',') WITHIN GROUP (ORDER BY Color) AS Color FROM 你的表名 -- 替换为实际表名 GROUP BY Store, Fruit;
说明
LISTAGG(Color, ','):指定要拼接的字段为Color,分隔符为逗号WITHIN GROUP (ORDER BY Color):控制拼接后颜色的排序顺序,和示例结果一致GROUP BY Store, Fruit:按商店和水果分组,将同一组的颜色值合并
内容的提问来源于stack exchange,提问作者Jason Miles
相关产品推荐
相关产品推荐

