【问题标题】:SQL result table with Joined row items if the other columns are the same. Help?如果其他列相同,则带有 Joined 行项的 SQL 结果表。帮助?
【发布时间】:2011-11-09 03:48:56
【问题描述】:

这是我的问题:

这是当前结果:

|姓名 |别名 |角色 | 马克马克用户 马克马克管理员

这是想要的结果:

|姓名 |别名 |角色 | 马克马克用户,管理员

这可以通过 SQL 实现吗(现在使用 Oracle 和 Java EE/JPA/Hibernate)?

【问题讨论】:

标签: java sql oracle


【解决方案1】:

GROUP_CONCAT 是一个 MySQL 函数。

这是 Oracle 的 SQL:

  SELECT Name, LISTAGG(Role, ',') WITHIN GROUP (ORDER BY Role) AS Roles
    FROM Your_Table
GROUP BY Name;

【讨论】:

    【解决方案2】:

    正如在类似问题中提到的,这在以下 Oracle Base 文章中进行了深入介绍:http://www.oracle-base.com/articles/misc/StringAggregationTechniques.php

    简而言之,您可以使用 LISTAGG 函数或 WM_CONCAT 函数,具体取决于您运行的 Oracle 版本。

    【讨论】:

      猜你喜欢
      • 2022-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 1970-01-01
      • 2022-08-11
      相关资源
      最近更新 更多