listagg小记录
Posted zy18755122285
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了listagg小记录相关的知识,希望对你有一定的参考价值。
listagg的作用是将分组范围内的所有行特定列的记录加以合并成行。函数签名中的measure_expr为分组中每个列的表达式,而delimiter为合并分割符。如果delimiter不设置的话,就表示无分割符。
中间within group后面的order_by_clause表示的是进行合并中要遵守的排序顺序。而后面的over子句表明listagg是具有分析函数analyze funcation特性的。具体采用listagg有三个场景。
1、对于无分组
SQL> select * from emp where deptno=30;
EMPNO ENAME
----- ---------- --------- ----- ----------- --------- --------- ------
6 rows selected
--按照empno进行排序
SQL> select listagg(ename,' , ') within group (order byempno) from emp where deptno=30;
LISTAGG(ENAME,',')WITHINGROUP(
------------------------------------------------------------
ALLEN , WARD , MARTIN , BLAKE , TURNER , JAMES
2、
SQL> select deptno, listagg(ename,' ,') within group (order by empno) from emp group by deptno;
DEPTNO LISTAGG(ENAME,',')WITHINGROUP(
------ -------------------------------------
3、
SQL> select deptno, ename, listagg(ename, ' , ') within group (order by empno)
DEPTNO ENAME
------ ------
14 rows selected
以上是关于listagg小记录的主要内容,如果未能解决你的问题,请参考以下文章