oracle行转列及效果

来源:互联网 发布:特许网络的组织结构 编辑:程序博客网 时间:2024/05/21 06:17

1wmsys.wm_concat

Oracle中的wmsys.wm_concat主要实现行转列功能(说白了就是将查询的某一列值使用逗号进行隔开拼接,成为一条数据)。

2、LISTAGG

 这是最基础的用法:

LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)

 

用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。

非常方便。

 

同样是聚合函数,还有一个高级用法:

就是over(partition by XXX)

也就是说,在你不实用Group by语句时候,也可以使用LISTAGG函数:


3、实例:

select t1.jsbh,t.* from t_auth_user t,t_auth_user_role t1 where t.yhbh=t1.yhbh  order by t.yhbh,t1.jsbh ;


select t.yhbh,listagg(jsbh,',') within GROUP (order by jsbh)   js
from  t_auth_user t,t_auth_user_role t1
where t.yhbh=t1.yhbh 
group by t.yhbh ;


select t.yhbh,wm_concat(t.jsbh) as js from  t_auth_user_role  t group by t.yhbh ;


0 0
原创粉丝点击