繁体   English   中英

如何将2个记录和一个字段合并为1行和2个字段(Oracle 11g)?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM