将数据从列转换为行

时间:2015-06-25 12:58:37

标签: sql sql-server database

我有一个包含如下数据的表格。

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 个答案:

答案 0 :(得分:0)

使用UNPIVOT执行此操作:

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