我需要从逗号分隔的字符串中删除重复的值。
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)+($|,)','13') col from ct
Output: a,b,c,a,b
上面的查询可以删除连续的重复字符。
我知道上述要求可以通过从逗号分隔值中创建一个表并对不同值进行listagg
来解决。
是否可以使用单个正则表达式语句来实现上述要求?
这应该给你所需的结果:
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;