Oracle:将子查询中的多个结果合并为单个逗号分隔值

发布于 2024-07-12 13:24:04 字数 236 浏览 7 评论 0原文

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

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

I'm trying to convert a single-columned subquery into a command-separated VARCHAR-typed list of values.

This is identical to this question, but for Oracle rather than SQL Server or MySQL.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甲如呢乙后呢 2024-07-19 13:24:05

Tim Hall 网站上有关于可用字符串聚合技术的精彩总结。

There is an excellent summary of the available string aggregation techniques on Tim Hall's site.

☆獨立☆ 2024-07-19 13:24:05

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

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;

I found this that seems to work. Thoughts?

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;
左岸枫 2024-07-19 13:24:05

11.2 引入了 LISTAGG,与 WM_CONCAT 不同,它是有文档记录的。 自定义聚合函数也可以做到这一点。

11.2 introduced LISTAGG, which unlike WM_CONCAT is documented. A custom aggregate function could also do this.

無心 2024-07-19 13:24:05

SELECT deptno, wm_concat(ename) AS 员工
来自员工
按部门分组;

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

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

Reference: http://forums.oracle.com/forums/thread.jspa?messageID=1186901�

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文