如何在Oracle中以A,B格式检索两列数据

use*_*137 9 string oracle

我在oracle数据库中有两列

+---------+---------+
| Column1 | Column2 |
+---------+---------+
| A       | 1       |
| A       | 2       |
+---------+---------+
Run Code Online (Sandbox Code Playgroud)

我希望退出数据,就像我将获得数据一样

+---------+---------+
| Column1 | Column2 |
+---------+---------+  
| A       | 1,2     |
+---------+---------+
Run Code Online (Sandbox Code Playgroud)

请给我解决方案.

Jus*_*ave 19

Tim Hall 在Oracle中有一个非常规范的字符串聚合技术列表.

您使用哪种技术取决于许多因素,包括Oracle的版本以及您是否在寻找纯粹的SQL解决方案.如果您使用的是Oracle 11.2,我可能会建议使用LISTAGG

SELECT column1, listagg( column2, ',' ) WITHIN GROUP( order by column2 )
  FROM table_name
 GROUP BY column1
Run Code Online (Sandbox Code Playgroud)

如果您使用的是早期版本的Oracle,假设您不需要纯SQL解决方案,我通常更喜欢使用用户定义的聚合函数方法.