博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用Oracle的wm_concat函数把行转为列,合并分组后的列值
阅读量:6345 次
发布时间:2019-06-22

本文共 566 字,大约阅读时间需要 1 分钟。

hot3.png

假如有员工表(t_employee)包含:部门ID、姓名、年龄

需求:将同一部门的员工姓名按年龄从小到大的顺序拼接起来,一个部门一行

表中数据如下:

depID name age
1 messi 27
1 avatar
26
2 louis 25
2 victoria 24

sql语句:

select b.depID, max(b.names)  from (select a.depID,               wmsys.wm_concat(a.name) over(partition by a.depID order by a.age) names          from t_employee a) b group by b.depID

查询结果为:

depID names
1 avatar,messi
2 victoria,louis

连接时默认用逗号分隔,若要修改为‘-’可用

replace(wmsys.wm_concat(a.name),',','-')

附上两篇相关文章:

1、开窗函数over(partition by)介绍:

2、oracle中WMSYS.WM_CONCAT函数的版本差异:                                                                    

转载于:https://my.oschina.net/HyacinthYuan/blog/471088

你可能感兴趣的文章
如何写出好的产品需求文档(PRD)?
查看>>
Flex Chart
查看>>
Python中实用却不常见的小技巧
查看>>
如何从命令行把ubuntu15.10升级到ubuntu16.04测试版本
查看>>
012# Adempiere系统的贸易流程(一)
查看>>
(一)阅读器客户端开发实战_引言
查看>>
为何禁用MyBatis缓存
查看>>
手机安装 apk 出现“解析包时出现问题”
查看>>
在Android上面如何使用带有心跳检测的Socket
查看>>
Oracle用户被锁定解决方法
查看>>
485总线的概念
查看>>
我的友情链接
查看>>
web前端笔记
查看>>
import 路径
查看>>
使用optimizely做A/B测试
查看>>
finally知识讲解
查看>>
Matplotlib绘图与可视化
查看>>
openstack ocata版(脚本)控制节点安装
查看>>
【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...
查看>>
在开发中处理海量数据的方法 思路
查看>>