您在 Oracle 10g 中有一个包含键和值对的表,并且希望将其转换为包含以下列的表每个唯一的键,每行都有相应的值。生成的表应动态调整以适应添加到原始表中的任何新键值对。
Oracle 11g 引入了 PIVOT 操作,使您能够执行此类动态透视:
select * from (select id, k, v from _kv) pivot(max(v) for k in ('name', 'age', 'gender', 'status'))
此查询将创建一个表,其中包含 IN 中指定的四个键中的每一个的列
Oracle 11g 还提供了一个透视 XML 选项,允许您处理未知的列标题:
select * from (select id, k, v from _kv) pivot xml(max(v) for k in (any))
此查询将生成 XML 结果集合,其中每一列对应一个唯一键,关联值存储为 XML 元素的
以上是如何在 Oracle 中动态地将行转换为列?的详细内容。更多信息请关注PHP中文网其他相关文章!