我正在寻找一种在 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,但我很难看到这种情况下的简单代码。
您可以对列进行逆透视以获得此结果,如下所示:
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)
| 归档时间: |
|
| 查看次数: |
6144 次 |
| 最近记录: |