小编AVr*_*let的帖子

从 Oracle 中的逗号分隔变量中删除重复值

我有一个变量(称为:all_email_list),其中总共包含 3 个电子邮件地址列表。(我发现了一些类似的问题,但与正确的解决方案不同)

示例:(test@asd.com, test2@asd.com,test@asd.com,test3@asd.com, test4@asd.com,test2@asd.com逗号之间可以包含空格,但并非始终如此)

所需的输出:test@asd.com, test2@asd.com,test3@asd.com,test4@asd.com

declare
first_email_list varchar2(4000);
second_email_list varchar2(4000);
third_email_list varchar2(4000);
all_email_list varchar2(4000);

begin

    select listagg(EMAIL,',') into first_email_list from UM_USER a left join UM_USERROLLE b on (a.mynetuser=b.NT_NAME) left join UM_RULES c on (c.id=b.RULEID) where RULEID = 902;
    select listagg(EMAIL,',') into second_email_list from table2 where CFT_ID =:P25_CFT_TEAM; 
    select EMAIL into third_email_list from table3 WHERE :P25_ID = ID;


    all_email_list:= first_email_list || ',' || second_email_list || ',' || third_email_list; 

    dbms_output.put_line(all_email_list);
end;
Run Code Online (Sandbox Code Playgroud)

有什么办法可以简单地解决这个问题吗?也许通过正则表达式。

regex sql oracle plsql oracle-apex

3
推荐指数
1
解决办法
480
查看次数

标签 统计

oracle ×1

oracle-apex ×1

plsql ×1

regex ×1

sql ×1