T-SQL实现多行转多列单行:PIVOT语法使用报错求解决
语法错误说明
- T-SQL的
PIVOT语法中,FOR关键字后指定的待转列取值是目标列的标识符,不能使用单引号包裹,需要替换为方括号[]。
正确实现代码
SELECT * FROM (SELECT CompanyName, Price, Project FROM dbo.MyTable) src PIVOT (SUM(Price) FOR Project IN ([Cleaning], [Vaccuming], [Painting], [VendingMachines], [Wallpapers], [Carpeting]) ) piv;
结果说明
执行上述代码后会输出1行数据,CompanyName列为Dell,后续Cleaning、Carpeting等各个项目列的值对应该项目的Price取值。如果业务场景中存在同公司同项目多条记录的情况,可以根据需求将聚合函数SUM替换为MAX、AVG等适配业务逻辑。
内容的提问来源于stack exchange,提问作者UnskilledCoder
相关产品推荐
相关产品推荐

