栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我如何从listagg删除重复项

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我如何从listagg删除重复项

首先选择所需的DISTINCT值,然后将LISTAGG应用于它们。这是一个基于Scott模式的示例。

SQL> -- Duplicate jobs within the departmentSQL> select deptno, listagg(job, ', ') within group (order by job) jobs  2  from emp  3  group by deptno;    DEPTNO JOBS---------- ------------------------------------------------------------        10 CLERK, MANAGER, PRESIDENT        20 ANALYST, ANALYST, CLERK, CLERK, MANAGER        30 CLERK, MANAGER, SALESMAN, SALESMAN, SALESMAN, SALESMANSQL>SQL> -- This won't work - DISTINCT can't be used in LISTAGGSQL> select deptno, listagg(distinct job, ', ') within group (order by job) jobs  2  from emp  3  group by deptno;select deptno, listagg(distinct job, ', ') within group (order by job) jobs    *ERROR at line 1:ORA-30482: DISTINCT option not allowed for this functionSQL>SQL> -- So - select distinct jobs first, then apply LISTAGG to itSQL> select x.deptno, listagg(x.job, ', ') within group (order by x.job) jobs  2  from (select distinct deptno, job  3        from emp) x  4  group by x.deptno;    DEPTNO JOBS---------- ------------------------------------------------------------        10 CLERK, MANAGER, PRESIDENT        20 ANALYST, CLERK, MANAGER        30 CLERK, MANAGER, SALESMANSQL>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398481.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号