一直在使用以下 regexp_replace 为“ col_name ”中的这些值创建一个逗号分隔的字符串并删除任何重复项。
REGEXP_REPLACE(RTRIM(XMLAGG(XMLELEMENT(E,col_name,',').EXTRACT('//text()')).GetClobVal(),','),'([^,]+)(,\1)+', '\1')
工作正常,但有 1 个例外 - 如果 'col_name' 有空字符串值。我最终得到的是:
value1,value2,,value3,value4,,value5 等。
寻找可以删除任何重复值和重复逗号的难以捉摸的正则表达式。
谢谢
- - 更新 - -
col-name
-----------------
row1 value 1
row2 value 2
row3
row4 value 2
row5 value 3
row6 value 1
row7
预期结果:value1,value2,value3
以下是否可以接受(不是 REGEXP_REPLACE,但可能更容易理解)?
测试表/数据:
询问:
Dbfiddle在这里。