如何在SQL Server中创建行转列的数据透视视图?
SQL Server 行转列创建视图示例脚本
原表数据格式
Asset_ID Process_ID Datapoint_Name Data_Value 27 62 Name John 27 62 Location United States
目标视图格式
Asset_ID Process_ID Name Location 27 62 John United States
方法1:使用CASE WHEN + MAX聚合函数
由于字符串无法用SUM,这里利用MAX提取分组内唯一的字符串值(每个Asset_ID+Process_ID+Datapoint_Name组合仅一条数据,MAX不会改变原内容):
CREATE VIEW vw_TransformedAssets AS SELECT Asset_ID, Process_ID, MAX(CASE WHEN Datapoint_Name = 'Name' THEN Data_Value END) AS Name, MAX(CASE WHEN Datapoint_Name = 'Location' THEN Data_Value END) AS Location FROM -- 替换为你的实际表名 YourTableName GROUP BY Asset_ID, Process_ID;
方法2:使用PIVOT运算符
SQL Server内置的行转列语法,同样用MAX处理字符串类型:
CREATE VIEW vw_TransformedAssets AS SELECT Asset_ID, Process_ID, [Name], [Location] FROM -- 替换为你的实际表名 YourTableName PIVOT ( MAX(Data_Value) FOR Datapoint_Name IN ([Name], [Location]) ) AS PivotTable;
说明
- 两种方法效果一致,可根据习惯选择。
- 若后续新增其他
Datapoint_Name,只需在CASE分支或PIVOT的IN列表中添加对应列名即可。
内容的提问来源于stack exchange,提问作者AlbumBlast
相关产品推荐
相关产品推荐

