2013-07-04 68 views
1

我已經導致象下面這樣:如何將多個列轉換爲一列在甲骨文

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 

怎麼辦呢?

+3

Google for unpivot operator –

回答

2

使用unpivot表操作:

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

太棒了!謝謝Mahmoud! – thinwa

+0

@ user2550062 - 隨時歡迎您:) –

3

可以使用Union

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 

SQL Fiddle

+0

謝謝Luv,你的回答是可行的,但我想要一個更「優雅」的解決方案,因爲關卡是非靜態的。 – thinwa