Oracle函数之LISTAGG

Oracle函数之LISTAGG,第1张

概述最近在学习的过程中,发现一个挺有意思的函数,它可实现对列值的拼接。下面我们来看看其具体用法。用法:对其作用,官方文档的解释如下:For a specified measure,LISTAGGorder

最近在学习的过程中,发现一个挺有意思的函数,它可实现对列值的拼接。下面我们来看看其具体用法。

用法:

对其作用,官方文档的解释如下:

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1153727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存