SQL Server:将列转换为行

Posted

技术标签:

【中文标题】SQL Server:将列转换为行【英文标题】:SQL Server : convert columns to rows 【发布时间】:2016-04-04 13:55:51 【问题描述】:

我在 SQL Server 中有以下输入

我需要在下面的输出中转换

在 SQL Server 中可以吗?如果是,请尽快提供解决方案。

提前致谢

【问题讨论】:

可能重复和/或多帐户:Sql Convert columns to rows and rows to columns 你考虑过自加入吗? SO 不是“为我编写代码”服务,当然不是“为我编写代码尽快”服务。请发布您尝试过的内容 PIVOT 赢得胜利。 与***.com/questions/36404550/…相同的类? 【参考方案1】:

像这样:

  SELECT 
  x.col2,
  MAX(CASE WHEN x.col1 = 48 THEN x.col3 END) AS [48],
  MAX(CASE WHEN x.col1 = 49 THEN x.col3 END) AS [49]
  FROM dbo.Table_1 x
  GROUP BY x.col2


 Result: 
 col2   48  49
 H0000   5  55
 H0100   6  66
 H0200   7  77
 H0300   8  88
 H0400   9  99
 H0500   10 100

【讨论】:

以上是关于SQL Server:将列转换为行的主要内容,如果未能解决你的问题,请参考以下文章

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

SQL Server 2008 R2 - 将列转换为行并将所有值放在一列中

将列转置为行 SQL Server

SQL 将列转换为行

sql 将列数据转换为行

SQL 查询将列转换为行