bw_*_*ezi 2 sql inverse oracle10g
我有一个更大的SQL产生类似的输出作为这个简化的例子:
SELECT
5 AS L0,
2 AS L1,
3 AS L2,
4 AS L3
FROM DUAL
Run Code Online (Sandbox Code Playgroud)
当前输出是这一行:
| L0 | L1 | L2 | L3 |
| 5 | 2 | 3 | 4 |
Run Code Online (Sandbox Code Playgroud)
所需的输出是这列:
| kind | value |
| 0 | 5 |
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过工会选择4次.我正在寻找建议,如果工会是我能在这里做的最好的,如果这个输出可以通过其他方式实现.
我还发现了许多将列反转为行的示例,但在这里我正在寻找从行到列的反转.
SQL*_*son 11
请尝试UnPIVOT:
SELECT substr(kind,2,1) AS kind,"value" FROM
(
SELECT
5 AS l0,
2 AS l1,
3 AS l2,
4 AS l3
FROM dual
)temp unpivot include NULLS ("value" FOR kind IN (l0, l1 , l2, l3));
Run Code Online (Sandbox Code Playgroud)
相反地:
SELECT *
FROM
(
SELECT Kind,
max(Value) Value
FROM table
GROUP BY Kind
) PIVOT ( max(Value) FOR Kind IN (L0, L1, L2, L3) );
Run Code Online (Sandbox Code Playgroud)
假设您实际上有一个表来查询.
| 归档时间: |
|
| 查看次数: |
4687 次 |
| 最近记录: |