将数据从列转换为行[重复]
Posted
技术标签:
【中文标题】将数据从列转换为行[重复]【英文标题】:Convert Data from Columns to Rows [duplicate] 【发布时间】:2015-06-25 12:58:36 【问题描述】:我有一张表格,其中包含如下所示的数据。
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 中完成?
【问题讨论】:
如果列是已知的,另一种简单的方法:sqlfiddle.com/#!3/7fdda/2/0 technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx 【参考方案1】:使用UNPIVOT
:
select * from TableName
unpivot([Values] for Fruits in ([Apples], [Mangoes], [Grapes]))u
【讨论】:
@jpw,这是禁止的吗?以上是关于将数据从列转换为行[重复]的主要内容,如果未能解决你的问题,请参考以下文章