oracle如何在没有UNION的情况下将列转置为行

Posted

技术标签:

【中文标题】oracle如何在没有UNION的情况下将列转置为行【英文标题】:oracle how to transpose columns into rows without UNION 【发布时间】:2016-09-12 12:52:19 【问题描述】:

假设,我在一个表中有 4 列

id | col1 | col2 | col3 

现在我想将其转换为一列,但分为 4 行:

result
-------
someid
col1data
col2data
col3data

我怎样才能做到这一点? 谢谢!

【问题讨论】:

你应该使用unpivot 【参考方案1】:

这可以使用unpivot 来完成。

select result 
from tablename
unpivot (result for colnames in (id,col1,col2,col3))

【讨论】:

有没有办法在不手动列出每一列的情况下进行反透视?我有一个超过 50 列的表格,而且这个数字每年都会增加新的列标题。

以上是关于oracle如何在没有UNION的情况下将列转置为行的主要内容,如果未能解决你的问题,请参考以下文章

Oracle:将列转置为行

将列转置为行 SQL Server

使用交叉应用将列转置为行

使用 Spark 将列转置为行

Postgresql 查询将列转置为行

t-sql 将列转置为行