将两行附加到一行(在一列上有所不同)

时间:2014-03-17 10:01:52

标签: sql oracle

我正在尝试创建一个查询,为我的oracle表中的每个唯一ID返回一行。 问题是我有一列Description,在每一行中都不是唯一的(Description-column是唯一可以为每个ID行btw不同的coulmn)。这就是我的表格:

ID              Description       Customer         
==================================================
5119450733      Cost              GOW_1
5119450733      Price             GOW_1
1543512377      Cost              GOW_2

有没有办法查询表,以便我附加描述的结果,以便我可以有唯一的ID行?例如:

ID              Description       Customer         
==================================================
5119450733      Cost,Price        GOW_1
1543512377      Cost              GOW_2

1 个答案:

答案 0 :(得分:1)

如果您使用LISTAGG,请使用Oracle 11g Release 2功能。

SELECT Id, 
       listagg(Description,',') WITHIN GROUP(ORDER BY description) AS Description, 
       Customer 
FROM   <table_name>
GROUP BY id, customer;

请参阅以下链接,了解有关不同版本的String Aggregation Techniques的详情。