度量快速开发平台-专业、快速的软件定制快开平台

标题: oracle 11g中 wm_concat、listagg [打印本页]

作者: 张兴康    时间: 2020-5-25 18:01
标题: oracle 11g中 wm_concat、listagg

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

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


SQL> create table a as select 1 id,'x' t1 from dual union all select 2,'y' from dual;
SQL> create table b as select 1 id,'a' t2 from dual
  2  union all select 1,'b' from dual
  3  union all select 1,'c' from dual
  4  union all select 2,'d' from dual
  5  union all select 2,'e' from dual;
SQL>  select a.id,a.t1,wm_concat(b.t2) list from a,b where a.id=b.id group by a.id,a.t1;
        ID T1
---------- ---
LIST
------------------------------
         1 x
a,c,b
         2 y
d,e

SQL> select a.id,a.t1,listagg(b.t2,',') within group(order by a.id,a.t1) from a,b where a.id=b.id group by a.id,a.t1;
        ID T1
---------- ---
LISTAGG(B.T2,',')WITHINGROUP(O
------------------------------
         1 x
a,b,c
         2 y
d,e


作者: 陈晓龙    时间: 2020-5-25 21:42
越来越有深度了!
作者: 万望    时间: 2020-5-27 12:52
11g又添新函数啦?赞一个
作者: 万望    时间: 2020-5-27 12:59
WMSYS用户说是跟Oracle的版本有关系,xe版是没有这个用户的,但是可以重建
作者: 张兴康    时间: 2020-5-28 18:07
万望 发表于 2015-12-27 12:52
11g又添新函数啦?赞一个

前两天株洲项目11G数据库,运行督办流程的时候报错,才知道的
作者: 万望    时间: 2020-5-28 20:53
张兴康 发表于 2015-12-28 18:07
前两天株洲项目11G数据库,运行督办流程的时候报错,才知道的


作者: 万望    时间: 2020-5-28 20:54





欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://p.delit.cn/) Powered by Discuz! X3.2