我正在尝试将单列子查询转换为命令分隔的VARCHAR
类型的值列表。
这与this question相同,但对于Oracle而不是SQL Server或MySQL。
答案 0 :(得分:13)
Tim Hall的网站上有available string aggregation techniques的精彩摘要。
答案 1 :(得分:4)
我发现这似乎有效。想法?
SELECT SUBSTR (c, 2) concatenated
FROM (SELECT SYS_CONNECT_BY_PATH ( myfield, ',') c, r
FROM (SELECT ROWNUM ID, myfield,
RANK () OVER (ORDER BY ROWID DESC) r
FROM mytable
ORDER BY myfield)
START WITH ID = 1
CONNECT BY PRIOR ID = ID - 1)
WHERE r = 1;
答案 2 :(得分:3)
11.2引入了LISTAGG,与WM_CONCAT不同。我们尚未使用11.2,因此我们使用自定义聚合函数。
答案 3 :(得分:2)
这是一个博客,显示了一个像MySQL的GROUP_CONCAT()
:
http://halisway.blogspot.com/2006/08/oracle-groupconcat-updated-again.html
答案 4 :(得分:1)
SELECT deptno,wm_concat(ename)AS员工 来自emp GROUP BY deptno;
参考:http://forums.oracle.com/forums/thread.jspa?messageID=1186901�