我需要从逗号分隔的字符串中删除重复的值。
Input String: a,a,a,b,c,a,b
Expected output: a,b,c
我尝试过:
with ct(str) as(
select 'a,a,a,b,c,a,b' from dual
)
select REGEXP_REPLACE(str,'([^,]*)(,\1)+($|,)','\1\3') col from ct
Output: a,b,c,a,b
上述查询可以删除连续的重复字符。
我知道上述要求可以通过用逗号分隔值创建一个表来解决,并对不同的值进行listagg
。
是否可以使用单个正则表达式语句来实现上述要求?
答案 0 :(得分:1)
这应该为您提供所需的结果:
with borken as (SELECT distinct column_value as str,'1' cnt FROM
table(apex_string.split('a,a,a,b,c,a,b' ,',')) )
select listagg(str,',') within group (order by cnt) from borken;