云服务器网:购买云服务器和VPS必上的网站!

怎么将MSSQL数据行转换为列

总的来讲,在Microsoft SQL Server中将数据行转换为列包括以下几个步骤:用UNPIVOT函数将数据行转换为列,用PIVOT函数将数据列转换为行,和使用聚集函数和CASE表达式将数据行转换为列。本文将介绍在Microsoft SQL Server

总的来讲,在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数据行转换为列,以解决您的表结构问题。

本文来源:https://www.yuntue.com/post/86070.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注