listagg与wm_concat

listagg与wm_concat

当查询较慢时,使用listagg代替wm_concat

WMSYS.WM_CONCAT: 依赖WMSYS 用户,不同oracle环境时可能用不了,返回类型为CLOB,可用substr截取长度后to_char转化为字符类型

LISTAGG  : 11g2才提供的函数,不支持distinct,拼接长度不能大于4000,函数返回为varchar2类型,最大长度为4000.

listagg语法:
LISTAGG( [,]) WITHIN GROUP (ORDER BY  ) [OVER (PARTITION BY  )]
wm_concat 语法:
vm_concat()
实例:
emp表:
listagg与wm_concat

wm_concat:
select deptno,wmsys.wm_concat(ename || '-' || job) name from emp group by deptno;
结果:
listagg与wm_concat
listagg:
select distinct deptno,LISTAGG(ename|| '-' || job, ',') within group(order by ename) over(partition by emp.deptno) from emp

select deptno, LISTAGG(ename|| '-' || job, ',') within GROup(order by ename)  from emp group by deptno;
结果:
listagg与wm_concat

转载于:https://blog.51cto.com/13160165/2116728

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值