oracle,把多列同时转成用逗号分割的一行,并去除重复数据

xiaoxiao2021-02-28  128

SELECT regexp_replace(create_user, '([^,]*)(,\1)+($|,)', '\1\3') createUser, regexp_replace(assign_user, '([^,]*)(,\1)+($|,)', '\1\3') assignUser, regexp_replace(user_name, '([^,]*)(,\1)+($|,)', '\1\3') userName, regexp_replace(firm_id, '([^,]*)(,\1)+($|,)', '\1\3') firmId, regexp_replace(high_seas, '([^,]*)(,\1)+($|,)', '\1\3') highSeas FROM (SELECT listagg(create_user, ',') within GROUP(ORDER BY create_user) create_user, listagg(assign_user, ',') within GROUP(ORDER BY assign_user) assign_user, listagg(t1.user_name, ',') within GROUP(ORDER BY t1.user_name) user_name, listagg(t1.firm_id, ',') within GROUP(ORDER BY t1.firm_id) firm_id, listagg(t1.high_seas, ',') within GROUP(ORDER BY t1.high_seas) high_seas FROM TABLE(XXXX_XXXX) t1)

orcale里的正则替换 regexp_replace(1,2,3,4,5,6) 语法说明:1:字段 2:替换的字段 3:替换成什么 4:起始位置(默认从1开始) 5:替换的次数(0是无限次) 6:不区分大小写

转载请注明原文地址: https://www.6miu.com/read-69638.html

最新回复(0)