[英]How do I combine 2 records with a single field into 1 row with 2 fields (Oracle 11g)?
这是一个示例数据
record1: field1 = test2
record2: field1 = test3
我想要的实际输出是
record1: field1 = test2 | field2 = test3
我环顾四周,但找不到我想要的东西。 我可以使用自定义函数以这种格式获取它,但是我试图查看是否有一种方法可以使它不求助于它。
非常感谢
您需要使用数据透视:
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))
有几种方法可以解决此问题-谷歌将行转换为列。 这是一组答案: http : //www.dba-oracle.com/t_converting_rows_columns.htm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.