总的来说,在Microsoft SQL Server中将数据行转换为列包括以下几个步骤:用UNPIVOT函数将数据行转换为列,用PIVOT函数将数据列转换为行,以及使用聚集函数和CASE表达式将数据行转换为列。本文将介绍在Microsoft SQL Server中将数据行转换为列的三种方法,以使用户可以根据不同的情况选择合适的方法来实现这一要求。
首先,UNPIVOT函数可用于将数据行转换为列。它的基本语法如下:
UNPIVOT([列1],[列2],[列3]…)
AS
PIVOT([行值]
FOR [列名] IN ([行值1],[行值2]…))
例子:
SELECT *
FROM
UNPIVOT(
[a], [b], [c]
) AS PIVOT(
[RowValue] FOR [ColName] IN ([a],[b],[c])
);
其次,PIVOT函数用于将数据列转换为行。它的基本语法如下:
PIVOT([列值]
FOR [列名1] IN ([行值1],[行值2]…))
例子:
SELECT *
FROM
PIVOT(
[RowValue] FOR [ColName1] IN ([a],[b],[c])
) AS pivottable;
第三,如果要使用聚集函数和CASE表达式将数据行转换为列,可以这样写:
SELECT [EMP_ID],
CASE WHEN [Type] = ‘Salary’ THEN [Amount] END AS [Salary],
CASE WHEN [Type] = ‘Bonus’ THEN [Amount] END AS [Bonus],
CASE WHEN [Type] = ‘Deduction’ THEN [Amount] END AS [Deduction]
FROM EmployeeDetails
GROUP BY [EMP_ID]
例如,假设您有一个名为EmployeeDetails的表,其中包含EMP_ID、Type和Amount三列,您将使用以上查询来转换数据行。整个查询的工作方式是,它将它所“遇到”的Type值(如“Salary”、“Bonus”和“Deduction”)映射到三个列中。
以上就是Microsoft SQL Server中如何将数据行转换为列的三种方法。它们是UNPIVOT函数、PIVOT函数和聚集函数和CASE表达式。通过使用上述三种方法,可以轻松将SQL数据行转换为列,以解决您的表结构问题。
来源地址:如何将MSSQL数据行转换为列(mssql行转化成列)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^