sql – 如何在Oracle中使用regex从逗号分隔列表中删除重复项,但我不想要重复值?

参见英文答案 >
How to remove duplicates from space separated list by Oracle regexp_replace? 3个

>
How to remove duplicates from comma separated list by regexp_replace in Oracle?2个

我有这个字符串

ABCD1234,XYZ,ABCD1234,ABCD1234C,abc,abcX,1234U,1234

我想要,但我不想要重复值

ABCD1234,1234,

我正在使用下面的正则表达式

select regexp_replace (
    'ABCD1234,1234','([^,]+)(,\1)+','\1'
 ) test
from dual;

解决方法

按照第
http://www.dba-oracle.com/t_extract_comma_delimited_strings_oracle_sql.html条,试试这个:

select distinct str from
(select regexp_substr ('ABCD1234,'[^,]+',1,rownum) str 
from dual 
connect by level <= regexp_count ('ABCD1234,]+')) v;

小提琴:http://sqlfiddle.com/#!4/c858d/5

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。