我的数据库中的表格如下:
ID | VARIANT | SIFRANT | VALUE
当我打电话
SELECT * FROM example_table
我自己得到每一行。但是我的数据库中的记录可以具有相同的VARIANT
。我想将这些记录输出到同一行。
例如,如果我有
ID | VARIANT | SIFRANT | VALUE 1 | 3 | 5 | 50 2 | 3 | 6 | 49 3 | 3 | 1 | 68
我希望输出
VARIANT | VALUES_5 | VALUES_6 | VALUES_1 3 | 50 | 49 | 68
编辑:我找到了使用PIVOT的解决方案,代码如下:
select *
from (
select variant, VALUE, SIFRANT
from example_table
)
pivot
(
max(VALUE)
for SIFRANT
in ('1','2','3','4','5','6','7','8','9','10')
)
答案 0 :(得分:4)
您似乎只需要对数据进行汇总:
with test(ID, VARIANT, SIFRANT, VALUE) as
(
select 1, 3, 5, 50 from dual union all
select 2, 3, 6, 49 from dual union all
select 3, 3, 1, 68 from dual
)
select variant, listagg (value, ' ') within group ( order by id)
from test
group by variant