SQL Server or C# transpose

本文关键字:transpose or Server SQL | 更新日期: 2023-09-27 18:08:09

我知道这似乎是一个非常基本的问题,但它不是;我不能使用SQL Server pivot,因为我不想要SUM,我只想要转置。

我如何在SQL查询中转换SQL数据在c# LINQ上?哪个是最快的?

通用数据

| Company | Product | Count |
|---------|---------|-------|
|   Cloud |   Nokia |    10 |
|   Cloud | Samsung |    30 |
|   Cloud |    Sony |    42 |
|    Coms |   Apple |    34 |
|    Coms |   Nokia |    39 |
|    Coms | Samsung |    11 |
|    Coms |    Sony |    22 |
|      RP |   Nokia |    22 |
|      RP | Samsung |    29 |
|      RP |    Sony |    22 |

这:

| Company | Nokia | Samsung | Sony |  Apple |
|---------|-------|---------|------|--------|
|   Cloud |    10 |      30 |   42 |      0 |
|    Coms |    39 |      11 |   22 |     34 |
|      RP |    22 |      29 |   22 |      0 |

SQL Server or C# transpose

这个查询:

SELECT 
    Company
    , [Nokia]
    , [Samsung]
    , [Sony]
    , [Apple]
FROM
    YourTable
PIVOT (
    MAX(Count) FOR Product IN ([Nokia], [Samsung], [Sony], [Apple])
)
AS p

会产生:

| COMPANY | NOKIA | SAMSUNG | SONY |  APPLE |
|---------|-------|---------|------|--------|
|   Cloud |    10 |      30 |   42 | (null) |
|    Coms |    39 |      11 |   22 |     34 |
|      RP |    22 |      29 |   22 | (null) |
<<p> SQLFiddle演示/strong>