在单个字段中组合多个行

时间:2013-07-22 14:15:39

标签: oracle11g plsqldeveloper

我有这张桌子:

数---------- ----------用户值

1 ---------------甲------------- 25

1 --------------- B ------------ 28

2 ---------------ç------------- 30

2 --------------- d ------------- 35

这就是我想要的:

数---------- ----------用户值

1 --------------- A,B ----------- 25,28

2 --------------- C,d ----------- 30,35

有数千条记录,我正在组织它们。 sql应该是什么?

2 个答案:

答案 0 :(得分:0)

我建议在网站上搜索... 字符串agresgation listagg 等...

同时查看here

答案 1 :(得分:0)

由于您使用的是Oracle 11g +,因此可以使用LISTAGG()函数:

select "Number",
  listagg("user", ', ') within group (order by "user") "user",
  listagg("value", ', ') within group (order by "user") value
from yourtable
group by "Number"

请参阅SQL Fiddle with Demo