10

我正在尝试将单列子查询转换为以命令分隔VARCHAR的类型的值列表。

这与此问题相同,但适用于 Oracle 而不是 SQL Server 或 MySQL。

4

4 回答 4

12

在 Tim Hall 的网站上有一个很好的关于可用字符串聚合技术的总结。

于 2009-01-29T19:19:57.993 回答
5

我发现这似乎有效。想法?

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;
于 2009-01-29T17:49:47.943 回答
3

11.2 引入了LISTAGG,与 WM_CONCAT 不同的是,它被记录在案。我们还没有使用 11.2,所以我们使用自定义聚合函数。

于 2010-02-03T15:30:40.370 回答
0

SELECT deptno, wm_concat(ename) AS employees FROM emp GROUP BY deptno;

参考: http://forums.oracle.com/forums/thread.jspa?messageID=1186901& #1186901

于 2010-08-25T19:44:10.667 回答