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

来源:互联网 发布:佛罗里达大学 知乎 编辑:程序博客网 时间:2024/05/28 18:45
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:不区分大小写

阅读全文
0 0
原创粉丝点击