sqlserver列转行
时间: 2023-07-24 19:28:48 浏览: 114
您可以使用 SQL Server 中的 UNPIVOT 操作符将列转换为行。以下是一个示例查询,它使用 UNPIVOT 将列数据转换为行数据:
```
SELECT CustomerID, OrderDate, TotalAmount
FROM (
SELECT CustomerID,
[2019-01-01] AS JanTotalAmount,
[2019-02-01] AS FebTotalAmount,
[2019-03-01] AS MarTotalAmount
FROM PivotTable
) AS SourceTable
UNPIVOT (
TotalAmount FOR OrderDate IN (JanTotalAmount, FebTotalAmount, MarTotalAmount)
) AS UnpivotTable
```
在上面的查询中,我们先从使用 PIVOT 将行数据转换为列数据的 PivotTable 中选择了 CustomerID、JanTotalAmount、FebTotalAmount 和 MarTotalAmount 列,并将其作为子查询中的 SourceTable。然后,我们使用 UNPIVOT 将 JanTotalAmount、FebTotalAmount 和 MarTotalAmount 列中的值转换为 TotalAmount 列的值,并将 OrderDate 列的值设置为相应的月份。最终结果将是一个包含 CustomerID、OrderDate 和 TotalAmount 的表格,其中每个月的总金额作为一个单独的行。
阅读全文