这是一个示例数据
record1: field1 = test2
record2: field1 = test3
我想要的实际输出是
record1: field1 = test2 | field2 = test3
我环顾网但找不到我要找的东西。我可以使用自定义函数以这种格式获取它,但我试图看看是否有办法让它工作而不诉诸于此。
非常感谢
答案 0 :(得分:2)
您需要使用pivot:
with t(id, d) as (
select 1, 'field1 = test2' from dual union all
select 2, 'field1 = test3' from dual
)
select *
from t
pivot (max (d) for id in (1, 2))
如果您没有id字段,则可以生成它,但您将拥有XML类型:
with t(d) as (
select 'field1 = test2' from dual union all
select 'field1 = test3' from dual
), t1(id, d) as (
select ROW_NUMBER() OVER(ORDER BY d), d from t
)
select *
from t1
pivot xml (max (d) for id in (select id from t1))
答案 1 :(得分:1)
有几种方法可以解决这个问题 - 谷歌将行数转移到列。以下是一组答案:http://www.dba-oracle.com/t_converting_rows_columns.htm