-1

我可以在 oracle 中这样做吗?我有一些这样的数据:

No | Data |
===========
 1 | A    |
 1 | B    |
 1 | C    |
 1 | D    |

是否有任何查询可以产生这样的结果,。?

No | Data       |
=================
 1 | A, B, C, D |

非常感谢 :D

4

4 回答 4

1

也许此页面显示您正在寻找的内容。

于 2012-05-09T09:21:30.803 回答
1

SQL小提琴

Oracle 11g R2 模式设置

CREATE TABLE TEST ( ID, DATA ) AS
          SELECT 1, 'A' FROM DUAL
UNION ALL SELECT 1, 'B' FROM DUAL
UNION ALL SELECT 1, 'C' FROM DUAL
UNION ALL SELECT 1, 'D' FROM DUAL
UNION ALL SELECT 2, 'E' FROM DUAL
UNION ALL SELECT 2, 'F' FROM DUAL;

查询 1

SELECT ID,
       LISTAGG( DATA, ',' ) WITHIN GROUP ( ORDER BY DATA ) AS AGGREGATED_DATA
FROM   TEST
GROUP BY ID

结果

| ID | AGGREGATED_DATA |
|----|-----------------|
|  1 |         A,B,C,D |
|  2 |             E,F |
于 2015-06-18T17:37:24.133 回答
0

在 Oracle 中,我们可以使用wm_concat函数。以下是上述示例的查询:

SELECT no, wm_concat(data) from table group by no

参考:wm_concat

于 2012-05-09T09:43:31.050 回答
0
select 
   no,
   rtrim (xmlagg (xmlelement (d, data|| ',')).extract ('//text()'), ',') data
from 
   table_name
group by 
   no
;
于 2015-06-18T17:30:01.877 回答