oracle函数行转列函数 listagg() within group

listagg() within group 用于将多行转换成一行显示,即行转列,如下示例:

在t7_insurer_function表中可以看到一个insu_code对应多个busi_code字段,这时我想把它们用逗号分割,显示在一行里,这个时候就用到了行转列函数。

SELECT insu_code,listagg(busi_code,',') within group (order by busi_code ) busi_code  
FROM t7_insurer_function 
GROUP BY insu_code ;

结果如下:

用法解释如下:

listagg(busi_code,',') within group (order by busi_code ) 第一个参数busi_code表示需要在一行显示的字段,第二个参数表示使用逗号分割多个busi_code,order by busi_code表示排序,以什么样的顺序进行显示;

参考博文:
(1)https://blog.csdn.net/sinat_36257389/article/details/81004843 ;(辅助理解)
(2)https://blog.csdn.net/RuiKe1400360107/article/details/88855904 ;(辅助理解)
(3)https://www.cnblogs.com/sjxbg/p/9859100.html (辅助理解)

原文地址:https://www.cnblogs.com/jasonboren/p/14991266.html