当前位置:   article > 正文

listagg结果去重_listagg within group去重

listagg within group去重

最近在一个项目中用到了listagg方法,但是在组合结果中出现有重复的情况。默认的结果如下

于是我就写了一个方法对listagg的结果去重,也可以对该格式的字符串去重,方法如下

create or replace function listaggpure(targetStr varchar2,seperator varchar2:=',')
return  varchar2 is
  Rslt varchar2(32767);
begin
  select listagg(str,seperator) within group (order by 1 asc) elist into Rslt
         from (select distinct regexp_substr(t1.targetstr,'[^'||seperator||']+',1,level) str
                      from (select targetStr from dual) t1
         connect by level<regexp_count(t1.targetstr,'[^'||seperator||']+',1)+1);
  return(Rslt);
end listaggpure;

使用该方法对listagg结果去重就达到了想要的效果了,如下图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/970882
推荐阅读
相关标签
  

闽ICP备14008679号