如何使用内容可变的Decode将行旋转到列中

时间:2015-12-16 04:01:43

标签: sql oracle oracle10g pivot decode

我在格式化方面遇到了一些问题,所以希望我的描述有意义。我正在为不支持Pivot功能的Oracle DB编写查询,但我过去使用过Decode来实现类似的结果。

到目前为止,查询返回一个包含2列的表,第一列是文本标签,第二列是项目编号。每一行都包含一个标签和一个项目编号,每个项目编号都是唯一的,但标签会重复。

例如

A - 101  
B - 102  
A - 103  
C - 104  
B - 105  
A - 106  

我想对此进行调整,以便每个文本标签都有一行,并根据需要添加多列以显示所有匹配的项目编号。所以表格看起来像

A - 101 - 103 - 106  
B - 102 - 105  
C - 104

需要转动的数字的数量是可变的,项目编号本身也是如此。这可以使用解码功能或任何其他功能吗?

1 个答案:

答案 0 :(得分:0)

评论中的Sentinel链接包含我正在寻找的答案,请参阅此处ORACLE-BASE

我的数据库版本10.2没有LISTAGG函数,但它确实有WM_CONCAT函数,因此我的查询变为

select label, WM_CONCAT(item_number)  
from table  
group by label