Oracle拼接函数

1、拼接函数: distinct_listagg
2、使用说明,对于oracle原生的listagg函数,进行拼接的时候,会拼接重复项,诸如 : a,b,c,a
其中a出现多次,为了过滤掉第二项a ,参考并撰写了以下函数源代码

create or replace function distinct_listagg
  (listagg_in varchar2,
   delimiter_in varchar2)

   return varchar2
   as
   hold_result varchar2(4000);
   begin

   select rtrim( regexp_replace( (listagg_in)
      , '([^'||delimiter_in||']*)('||
      delimiter_in||'\1)+($|'||delimiter_in||')', '\1\3'), ',')
      into hold_result
      from dual;

return hold_result;

end;

你可能感兴趣的:(oracle函数)