在Oracle数据库中,没有像MySQL中的GROUP_CONCAT()
函数那样的内置函数
SELECT
deptno,
LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
FROM
emp
GROUP BY
deptno;
这个查询将返回每个部门编号(deptno
)以及该部门中逗号分隔的员工姓名列表。WITHIN GROUP (ORDER BY ename)
子句用于指定列表中元素的排序方式,在这里是按照员工姓名(ename
)的字母顺序排序。
请注意,LISTAGG()
函数在Oracle 11g版本中引入,因此确保你正在使用的数据库版本支持该函数。如果你使用的是更早的版本,你可能需要使用其他方法来实现类似的功能,例如使用自定义聚合函数或者通过多次查询和字符串连接的方式。