oracle中行转列LISTAGG()函数详解
LISTAGG()函数在Oracle中用于将多个行的数据聚合成一个单独的字符串。这个函数可以在查询结果中将多个记录的某一列值连接成一个单独的字符串,并且可以自定义连接的分隔符。
基本语法如下:
LISTAGG(column, delimiter) WITHIN GROUP (ORDER BY column)
column
是需要连接的列。delimiter
是连接时使用的分隔符。ORDER BY
子句用于指定列连接的顺序。
示例代码:
-- 假设有一个名为sales的表,包含year和product两个字段
-- 以下示例将按年份将产品名称列转换为一个逗号分隔的字符串
SELECT year, LISTAGG(product, ', ') WITHIN GROUP (ORDER BY product) AS products
FROM sales
GROUP BY year;
这个查询将根据年份分组销售记录,并将同一年份内的所有产品名称连接成一个字符串,产品名称之间用逗号和空格分隔。
评论已关闭