Oracle SQL:转置/旋转具有一行和多列的表结果

Jos*_*and 2 sql oracle pivot

我正在寻找一种在 Oracle SQL 中转置或旋转表的方法。对于这种情况,SELECT 中只有一行,但有多列。

例子:

SELECT
  id AS "Id",
  name AS "Name",
  some_value AS "Favorite color"
FROM
  table
WHERE
  id = 5;
Run Code Online (Sandbox Code Playgroud)

结果:

id | name | some_value
--- ------ -----------
5   John    Orange
Run Code Online (Sandbox Code Playgroud)

我希望看到的是:

Id             | 5
Name           | John
Favorite color | Orange
Run Code Online (Sandbox Code Playgroud)

我知道 PIVOT,但我很难看到这种情况下的简单代码。

Fra*_*uss 6

您可以对列进行逆透视以获得此结果,如下所示:

select fld, val
from (
    select to_char(id) as "Id", -- convert all columns to same type 
            name as "Name",
            some_value as "Favorite color"
      from your_table
     where id = 5
    ) unpivot(val for fld in("Id", "Name", "Favorite color"));
Run Code Online (Sandbox Code Playgroud)