2015-06-25 149 views
-5

我有一個表格,其數據如下所示。將數據從列轉換爲行

ID Full Name Apples Mangoes Grapes 
1  Name1  15  19 13 
2  Name2  11  16 15 
3  Name3  12  18 11 
4  Name4  16  20 11 
5  Name5  14  19 13 
6  Name6  19  15 18 

我想將它轉換成這樣。

ID Full Name Fruits Values 
1 Name1  Apples 15 
1 Name1  Mangoes 19 
1 Name1  Grapes 13 
2 Name2  Apples 11 
2 Name2  Mangoes 16 
2 Name2  Grapes 15 
3 Name3  Apples 12 
3 Name3  Mangoes 18 
3 Name3  Grapes 11 
4 Name4  Apples 16 
4 Name4  Mangoes 20 
4 Name4  Grapes 11 
5 Name5  Apples 14 
5 Name5  Mangoes 19 
5 Name5  Grapes 13 
6 Name6  Apples 19 
6 Name6  Mangoes 15 
6 Name6  Grapes 18 

是否有任何可以在Microsoft SQL中完成的可能性?

+1

另一種簡單的方法,如果列被稱爲:http://sqlfiddle.com/#!3/7fdda/2/0 –

+0

https://technet.microsoft。 com/en-us/library/ms177410(v = sql.105).aspx – galgil

回答

0

UNPIVOT開始:

select * from TableName 
unpivot([Values] for Fruits in ([Apples], [Mangoes], [Grapes]))u 
+1

@jpw,這是禁止的嗎? –