SQL Server 行转列的操作实例记录

在SQL Server中,行转列可以通过使用PIVOT操作来实现。PIVOT操作将行数据转换为列,并根据指定的聚合函数对数据进行汇总。以下是一个示例,演示如何在SQL Server中执行行转列操作:

假设有一个名为Sales的表,包含以下列:ProductIDYearRevenue。每一行表示一个产品在特定年份的销售收入。

CREATE TABLE Sales (
    ProductID INT,
    Year INT,
    Revenue DECIMAL(10, 2)
);

INSERT INTO Sales (ProductID, Year, Revenue)
VALUES (1, 2020, 1000),
       (1, 2021, 1500),
       (2, 2020, 2000),
       (2, 2021, 2500);

要将年份作为列,并显示每个产品在不同年份的销售收入,可以使用以下查询:

SELECT *
FROM
(
    SELECT ProductID, Year, Revenue
    FROM Sales
) AS SourceTable
PIVOT
(
    SUM(Revenue)  -- 使用SUM函数对Revenue进行汇总
    FOR Year IN ([2020], [2021])  -- 定义需要转换的年份列
) AS PivotTable;

上述查询将返回以下结果:

ProductID 2020 2021
1 1000.00 1500.00
2 2000.00 2500.00

在这个示例中,每个产品的销售收入被转换为两列:20202021。你可以根据自己的需求进行调整,并选择其他聚合函数(如AVG、MAX等)来汇总数据。

未经允许不得转载:老蒋笔记 » SQL Server 行转列的操作实例记录

公众号 「老蒋朋友圈」获取站长新知 / 加QQ群 「706011751」 获取商家优惠推送