在 SQL Server 中,可以使用 PIVOT 操作将行转换为列。PIVOT 操作需要使用聚合函数和 GROUP BY 子句来指定如何对数据进行汇总。\n\n以下是一个示例,演示如何将行转换为列:\n\n假设有一个名为 sales 的表,包含以下数据:\n\n| Salesperson | Product | Qty |\n|-------------|---------|-----|\n| John | Apple | 5 |\n| John | Orange | 3 |\n| Mary | Apple | 2 |\n| Mary | Banana | 4 |\n\n要将上述数据按销售人员(Salesperson)分组,并将产品(Product)作为列进行汇总,可以使用以下查询:\n\nsql\nSELECT Salesperson, [Apple], [Orange], [Banana]\nFROM\n(\n SELECT Salesperson, Product, Qty\n FROM sales\n) AS SourceTable\nPIVOT\n(\n SUM(Qty)\n FOR Product IN ([Apple], [Orange], [Banana])\n) AS PivotTable;\n\n\n上述查询将返回以下结果:\n\n| Salesperson | Apple | Orange | Banana |\n|-------------|-------|--------|--------|\n| John | 5 | 3 | NULL |\n| Mary | 2 | NULL | 4 |\n\n在上述查询中,子查询(SELECT Salesperson, Product, Qty FROM sales)用于选择需要进行行转列的数据。\n\nPIVOT 操作使用了 SUM(Qty) 作为聚合函数,并使用 FOR Product IN ([Apple], [Orange], [Banana]) 指定了要在结果中显示的产品列。\n\n最后,使用别名 PivotTable 将结果表进行命名。

SQL Server 行转列教程:PIVOT 操作详解

原文地址: https://www.cveoy.top/t/topic/mzM6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录