oracle字符串去重 listagg去重 正则去重

regexp_replace((listagg(OV.PNR, ',' ) within group (order by OV.PNR)), '([^,]+)(,\1)+', '\1')
//https://blog.youkuaiyun.com/lx_manito/article/details/78489416


regexp_replace(listagg(t.class_key, ',') within
                      group(order by t.class_key),
                      '([^,]+)(,\1)*(,|$)',
                      '\1\3')
//https://blog.youkuaiyun.com/Weixiaohuai/article/details/84998212 

以上为什么只提到listagg,其实对字符串“aa,aa,a,ab,ac”也有用,但是有一个限制,只对临近的字段可以做到去重,故多提到在listagg的去重中,因为listagg中可以排序。

不能排序的,建议不用负责的sql解决,用java代码解决去重效率也会很快

正则表达式解析:
\1+ 表示重复上面捕获组里的内容一次或多次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值