如何将MSSQL数据行转换为列(mssql行转化成列)

总的来说,在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行转化成列)