将数据从列转换为行[重复]

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,这是禁止的吗?

以上是关于将数据从列转换为行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个重复行转换为列,然后在记事本++中从列转换回行

熊猫将列转换为行[重复]

在python中将列转换为行[重复]

SQL Server 2008 R2,将列转换为行,将行转换为列[重复]

在Oracle中将列转换为行[重复]

如何将转换后的行汇总并集中到一个具有相同 ID 的字段中?