oracle数据库中listagg函数使用详解 |
listagg是oracle11.2增加的特性 。 功能类似wmsys.wm_concat函数,即将数据分组后,把指定列的数据通过指定符号合并 。 --listagg()函数,列转行 。 在每个分组内,LISTAGG根据order by子句对列值进行排序,将排序后的结果拼接起来 。 --基本语法;listagg(待处理列,连接符号) within group(order by 用于拼接组内排序字段) select a.* from test_userinfo a; --分组函数: select a.user_sex,listagg(a.user_school,',') within group(order by a.user_age) from test_userinfo a group by a.user_sex; --分析函数:根据年龄分区,在分区内部拼接学校,然后拼接时按照性别排序 select a.user_name,a.user_age,a.user_school,listagg(a.user_school,',') within group(order by a.user_sex) over (partition by a.user_age) from test_userinfo a; 附:LISTAGG () 和STRING_AGG () 函数的区别与简单使用 1:区别 LISTAGG 和 STRING_AGG 都是用于在 SQL 查询中将多个值合并为单个字符串的函数,但它们属于不同的数据库系统 。
2:语法结构 2.1 LISTAGG 函数的语法结构如下: LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY order_expression) [OVER (analytic_clause)]
2.2 STRING_AGG 函数的语法结构如下: STRING_AGG (expression, separator)
总结 到此这篇关于oracle数据库中listagg函数使用的文章就介绍到这了,更多相关oracle listagg函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! |