在Oracle数据库中,LISTAGG函数用于将多行数据合并为单个字符串。其基本语法如下:
LISTAGG(column_name, delimiter) WITHIN GROUP (ORDER BY order_column)
其中,column_name是要合并的列名,delimiter是用于分隔合并后的值的字符,order_column是用于指定合并时的排序顺序(可选)。
示例: 假设有一个表t1,包含以下数据:
name
-----
Alice
Bob
Cathy
使用LISTAGG函数将name列合并为一个逗号分隔的字符串:
SELECT LISTAGG(name, ', ') WITHIN GROUP (ORDER BY name) AS names
FROM t1;
结果为:
names
----------
Alice, Bob, Cathy
需要注意的是,LISTAGG函数在Oracle 11g及以上版本中可用。