当前位置:   article > 正文

【Oracle】使用DISTINCT和LISTAGG对查询结果去重、合并_listagg distinct

listagg distinct

1. 使用DISTINCT对查询结果去重

语法:SELECT DISTINCT [去重对象列], [列2], [列3].... FROM [表名]

例子:

1.1 原始数据

1.2 对ROLE(角色名)去重

注意点:查询的列必须保证除了被去重的列以外,其他列没有重复的值。

例如原始数据中POSITION列也有重复值,所以此处不查询POSITION列

1.3 对REGION(地区)列去重

2. 使用LISTAGG对查询结果合并

语法:SELECT [列1],

                     [列2],

                     LISTAGG([合并对象列], '[分割符]') WITHIN GROUP(ORDER BY [排序列]) AS [别名]

            FROM [表名]

            GROUP BY [列1],  [列2]

例子:

2.1 原始数据

      同【1.1 原始数据】

2.2 对POSITION(位置)列合并,以【;】间隔

 2.2 对ROLE(角色)列合并,以【,】间隔

 3.使用DISTINCT + LISTAGG对查询结果去重、合并

例子:

3.1 原始数据

      同【1.1 原始数据】

3.2 对ROLE(角色)列去重合并,以【&】间隔,以REGION(地区)排列

 3.3 对ROLE(角色)列去重合并,以【 and 】间隔,以SEX(性别)排列

【全文完】 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/970862
推荐阅读
相关标签
  

闽ICP备14008679号