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 (辅助理解)