最近在学习的过程中,发现一个挺有意思的函数,它可实现对列值的拼接。下面我们来看看其具体用法。
用法:
对其作用,官方文档的解释如下:
For a specifIEd measure, ListAGG
orders data within each group specifIEd in the ORDER
BY
clause and then concatenates the values of the measure column.
即在每个分组内,ListAGG根据order by子句对列植进行排序,将排序后的结果拼接起来。
measure_expr:可以是任何基于列的表达式。
delimiter:分隔符,默认为Nul
order_by_clause:order by子句决定了列值被拼接的顺序。
通过该用法,可以看出ListAGG函数不仅可作为一个普通函数使用,也可作为分析函数。
order_by_clause和query_partition_clause的用法如下:
下面对该函数进行举例说明:
普通函数,对工资进行排序,用逗号进行拼接。
sql> select Listagg(ename,',')within group(order by sal)name from emp;name----------------------------------------------------------------------------------------------------SMITH,JAMES,AdamS,MARTIN,WARD,MILLER,TURNER,ALLEN,CLARK,BLAKE,JOnes,FORD,SCott,KING
分组函数:
sqlselect deptno,Listagg(ename,1)">from emp group by deptno; DEPTNO name-------- ---------------------------------------------------------------------------------------------------- 10 MILLER,KING 20 SMITH,SCott 30 JAMES,BLAKE
分析函数:
sqlby sal)over(partition by deptno)name emp; DEPTNO Ename SAL name-------- ---------- ---------- ---------------------------------------- 10 MILLER 130010 CLARK 245010 KING 500020 SMITH 80020 AdamS 110020 JOnes 297520 SCott 300020 FORD 30 JAMES 950 JAMES,BLAKE 30 MARTIN 125030 WARD 30 TURNER 150030 ALLEN 160030 BLAKE 285014 rows selected.
总结
以上是内存溢出为你收集整理的Oracle函数之LISTAGG全部内容,希望文章能够帮你解决Oracle函数之LISTAGG所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)