【发布时间】:2011-11-09 03:48:56
【问题描述】:
这是我的问题:
这是当前结果:
|姓名 |别名 |角色 | 马克马克用户 马克马克管理员这是想要的结果:
|姓名 |别名 |角色 | 马克马克用户,管理员这可以通过 SQL 实现吗(现在使用 Oracle 和 Java EE/JPA/Hibernate)?
【问题讨论】:
-
你可能想看看这个问题:stackoverflow.com/questions/1120706/…
这是我的问题:
这是当前结果:
|姓名 |别名 |角色 | 马克马克用户 马克马克管理员这是想要的结果:
|姓名 |别名 |角色 | 马克马克用户,管理员这可以通过 SQL 实现吗(现在使用 Oracle 和 Java EE/JPA/Hibernate)?
【问题讨论】:
GROUP_CONCAT 是一个 MySQL 函数。
这是 Oracle 的 SQL:
SELECT Name, LISTAGG(Role, ',') WITHIN GROUP (ORDER BY Role) AS Roles
FROM Your_Table
GROUP BY Name;
【讨论】:
正如在类似问题中提到的,这在以下 Oracle Base 文章中进行了深入介绍:http://www.oracle-base.com/articles/misc/StringAggregationTechniques.php
简而言之,您可以使用 LISTAGG 函数或 WM_CONCAT 函数,具体取决于您运行的 Oracle 版本。
【讨论】: