3

我有一个查询总是返回一行,有很多列。我想把它变成 2 列和多行。

原始结果:

Col1, Col2, Col3, Col4
----------------------
val1, val2, val3, val4

我想要的是:

ColName, Value
--------------
Col1,    val1
Col2,    val2
Col3,    val3
Col4,    val4

这可能吗?

编辑(澄清)

我正在寻找一种自动的方式来做到这一点。IE 的东西我可以从任何只返回 1 行的查询中传递结果。

4

3 回答 3

3

当然。做

select 'Col1' ColName, Col1 Value from srctable union all
select 'Col2', Col2 from srctable union all
select 'Col3', Col3 from srctable union all
select 'Col4', Col4 from srctable
于 2010-02-26T20:04:51.167 回答
2

您使用的是 Oracle 11g 吗?您是否尝试过旋转和取消旋转?

更多信息在这里

于 2010-02-26T20:07:04.533 回答
0

我猜你没有内置数据透视表支持的 Oracle 版本。不幸的是,它从来都不是非常干净的代码,因为您必须构建每一行。

有关示例,请参阅此较早的帖子

转置选择结果与 Oracle

于 2010-02-26T20:41:30.660 回答