我有这样的表
COLA COLB
A 1
A 2
A 3
B 12
B 6
C 8
我想要输出如下
COLA COLB
A 1|2|3
B 12|6
C 8
请帮助我!
答案 0 :(得分:0)
您可以使用listagg()
:
select cola, listagg(colB, '|') within group (order by NULL)
from table t
group by cola;
order by NULL
指定没有特定订单,但它不保证订购。如果订单有所不同,您应该有一个明确的列。
编辑:
在早期版本的Oracle中,您可以使用wm_concat()
:
select cola, replace(wmsys.wm_concat(colB), ',', '|')
from table t
group by cola;
答案 1 :(得分:0)
试试这个。这适用于上面的Oracle 9i。
select
COLA,
rtrim (xmlagg (xmlelement (e, COLB || ' | ')).extract ('//text()'), ' | ') COLB
from
[table_name]
group by
COLA
;