度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 4050|回复: 15
打印 上一主题 下一主题

[分享] Oracle LISTAGG排重方法

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-7-8 18:25:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.使用正则表达式进行排重
SELECT regexp_replace('2,2,3,4,5 ', '([^,]+)(,\1)+', '\1') AS col  
  FROM dual  
查询结果:
  • SQL> SELECT regexp_replace('2,2,3,4,5 ', '([^,]+)(,\1)+', '\1') AS col  
  •   2    FROM dual  
  •   3  ;  
  •    
  • COL  
  • --------  
  • 2,3,4,5


可以对字符串进行排重

2. 使用上面的正则表达式对listagg进行排重



  • SELECT listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno) deptno,  

  •        regexp_replace((listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno)), '([^,]+)(,\1)+', '\1') bl_number  

  •   FROM scott.emp t
执行结果:


  • SQL> SELECT listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno) deptno,  

  •   2         regexp_replace((listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno)), '([^,]+)(,\1)+', '\1') bl_number  

  •   3    FROM scott.emp t  
  •   4  ;  
  •    
  • DEPTNO                                                                           BL_NUMBER  
  • -------------------------------------------------------------------------------- --------------------------------------------------------------------------------  
  • 10,10,10,20,20,20,20,20,30,30,30,30,30,30                                        10,20,30  


成功对listagg排重
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
 楼主| 发表于 2020-7-8 18:25:31 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
板凳
发表于 2020-7-11 15:06:03 | 只看该作者
回复

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
地板
发表于 2020-7-11 17:31:47 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
5#
 楼主| 发表于 2020-7-11 17:56:39 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
6#
 楼主| 发表于 2020-7-11 17:57:04 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
7#
发表于 2020-7-12 17:46:41 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
8#
发表于 2020-7-13 14:14:20 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
9#
发表于 2020-7-13 18:05:33 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
10#
发表于 2020-7-14 17:39:26 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-12-24 03:04 , Processed in 0.143110 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表