sql pivot多行转多列怎么实现

   2025-02-04 8330
核心提示:在SQL中,可以使用CASE WHEN语句结合聚合函数来实现对多行数据进行转置,将其转换为多列数据。具体步骤如下:使用GROUP BY来按照

在SQL中,可以使用CASE WHEN语句结合聚合函数来实现对多行数据进行转置,将其转换为多列数据。具体步骤如下:

使用GROUP BY来按照需要转置的列进行分组。使用CASE WHEN语句将每个需要转置的值转换为对应的列。使用聚合函数对转置后的列进行聚合操作。

以下是一个示例,假设有一个订单表Orders,其中包含订单号(OrderID)、商品名称(ProductName)和销售数量(Quantity):

SELECT OrderID,       MAX(CASE WHEN ProductName = 'Product A' THEN Quantity END) AS ProductA,       MAX(CASE WHEN ProductName = 'Product B' THEN Quantity END) AS ProductB,       MAX(CASE WHEN ProductName = 'Product C' THEN Quantity END) AS ProductCFROM OrdersGROUP BY OrderID;

上述查询将会将每个订单的商品数量转换为对应的列,输出结果类似于以下表格:

OrderID | ProductA | ProductB | ProductC--------+----------+----------+---------1       | 5        | 2        | NULL2       | 3        | NULL     | 13       | NULL     | 4        | 3

在上述示例中,使用CASE WHEN语句将商品名称转换为对应的列,并使用MAX函数聚合每个列的值。如果某个订单没有对应的商品,那么对应的列会显示NULL值。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言