Oracle listagg去重distinct的方式有哪些

   2024-10-28 8330
核心提示:在Oracle中,可以使用不同的方法来实现在使用LISTAGG函数时去重重复的值。以下是一些常用的方法:使用子查询和ROW_NUMBER()函数

在Oracle中,可以使用不同的方法来实现在使用LISTAGG函数时去重重复的值。以下是一些常用的方法:

使用子查询和ROW_NUMBER()函数:
SELECT LISTAGG(column_name, ',') WITHIN GROUP (ORDER BY column_name) AS resultFROM (    SELECT column_name, ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY column_name) rn    FROM table_name)WHERE rn = 1;
使用GROUP BY子句:
SELECT LISTAGG(DISTINCT column_name, ',') WITHIN GROUP (ORDER BY column_name) AS resultFROM table_name;
使用CONNECT BY子句:
SELECT LISTAGG(column_name, ',') WITHIN GROUP (ORDER BY column_name) AS resultFROM (    SELECT column_name, ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY column_name) rn    FROM table_name)START WITH rn = 1CONNECT BY PRIOR column_name = column_name AND PRIOR rn = rn-1;

这些方法可以根据具体需求选择合适的方式来去重重复的值。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号