转置查询结果

时间:2017-12-05 13:16:02

标签: sql oracle

我有select语句返回两个值(一列,两行)。我想改变它们,以便我有两列和一行。我知道有像pivot这样的东西,但我不知道如何使用它,因为它需要聚合值,我不会在这里汇总任何东西。什么是最高效的方法来完成这项任务?谢谢!

2 个答案:

答案 0 :(得分:1)

一种简单的方法是使用min()max()

select min(col), max(col)
from (<your query here>) t;

答案 1 :(得分:1)

使用ROWNUM伪列为每列生成唯一标识符,然后您可以使用任何聚合函数(因为它只会聚合单个值):

SELECT value1, value2  /*, value3 ... */
FROM   ( SELECT your_column, ROWNUM AS rn FROM your_table_or_query )
PIVOT  ( MAX( your_column )
         FOR rn IN ( 1 AS value1, 2 As value2 /*, 3 AS value3 ... */ )
       );