我的查询始终返回一行,其中多个列。我想把它变成2列和多行。
原始结果:
Col1, Col2, Col3, Col4
----------------------
val1, val2, val3, val4
我想要的是什么:
ColName, Value
--------------
Col1, val1
Col2, val2
Col3, val3
Col4, val4
这可能吗?
编辑(澄清)我正在寻找一种自动执行此操作的方法。 IE我可以从任何只返回1行的查询中传递结果。
答案 0 :(得分: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
答案 1 :(得分:2)
您使用的是Oracle 11g吗?你尝试过pivot和unpivot吗?
更多信息here。
答案 2 :(得分:0)
我猜你没有带有Pivot表支持的Oracle版本。不幸的是,它不是非常干净的代码,因为你必须建立每一行。
请参阅此旧帖子以获取示例