Sql 如何在Oracle中将多列转换为一列

Sql 如何在Oracle中将多列转换为一列,sql,oracle,Sql,Oracle,我的结果如下: level_1_node level_2_node level_3_node level_4_node Node 1 Node2 Node 3 Node 4 我想将其转换为: Node Node 1 Node 2 Node 3 Node 4 怎么做?你可以使用 select "level_1_node" as Node from Table1 union select "level_2_node" as Node from Table1

我的结果如下:

level_1_node level_2_node level_3_node level_4_node 
Node 1       Node2        Node 3       Node 4
我想将其转换为:

Node
Node 1
Node 2
Node 3
Node 4
怎么做?

你可以使用

select "level_1_node" as Node from Table1
union
select "level_2_node" as Node from Table1
union
select "level_3_node" as Node from Table1
union
select "level_4_node" as Node from Table1

您可以使用

select "level_1_node" as Node from Table1
union
select "level_2_node" as Node from Table1
union
select "level_3_node" as Node from Table1
union
select "level_4_node" as Node from Table1

使用表格运算符:

select "level_1_node" as Node from Table1
union
select "level_2_node" as Node from Table1
union
select "level_3_node" as Node from Table1
union
select "level_4_node" as Node from Table1
select value
from tablename
unpivot 
(
  value
  for node in (level_1_node, 
               level_2_node, 
               level_3_node, 
               level_4_node)
);
使用表格运算符:

select value
from tablename
unpivot 
(
  value
  for node in (level_1_node, 
               level_2_node, 
               level_3_node, 
               level_4_node)
);

Google for unpivot Operator Google for unpivot Operator谢谢你,你的答案是可行的,但我想要一个更“优雅”的解决方案,因为级别是非静态的。谢谢你,Luv,你的答案是可行的,但我想要一个更“优雅”的解决方案,因为级别是非静态的。太棒了!谢谢你,马哈茂德!明亮的谢谢你,马哈茂德!