阅读量:3
在SQL Server中,可以使用PIVOT操作将行转换为列。PIVOT操作可以将唯一值作为列标题,并将行中的值作为新列填充的值。
以下是一些使用PIVOT操作的示例:
- 基本的PIVOT操作:
SELECT *
FROM (
SELECT column1, column2, column3
FROM table_name
) AS SourceTable
PIVOT (
MAX(column3) -- 选择一个聚合函数,例如SUM、COUNT、MAX等
FOR column1 -- 列标题所在的列
IN (value1, value2, value3) -- 列标题的唯一值列表
) AS PivotTable;
- 使用动态列标题的PIVOT操作:
DECLARE @columnList AS NVARCHAR(MAX);
DECLARE @pivotQuery AS NVARCHAR(MAX);
SELECT @columnList = CONCAT(@columnList, ', ', QUOTENAME(column1))
FROM (
SELECT DISTINCT column1
FROM table_name
) AS ColumnListTable;
SET @pivotQuery = CONCAT('
SELECT *
FROM (
SELECT column1, column2, column3
FROM table_name
) AS SourceTable
PIVOT (
MAX(column3)
FOR column1
IN (', @columnList, ')
) AS PivotTable;
');
EXECUTE sp_executesql @pivotQuery;
以上示例中,table_name是要转换的原始表的名称,column1是包含列标题的列的名称,column2和column3是要转换的值的列的名称。value1, value2, value3是列标题的唯一值列表。
值得注意的是,PIVOT操作是特定于SQL Server的,不适用于所有数据库管理系统。如果您使用的是其他数据库,可能需要使用不同的方法来实现行到列的转换。
以上就是关于“sqlserver行转列的方法是什么”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm