sql - 将行旋转到列

标签 sql sql-server pivot pivot-table

以下是我的原始数据: raw data

我希望数据按如下所示进行旋转:pivoted data

select cvid, cid,67554,67555,67556,67557 
from #temp2 pivot
    (
    max(lcd)
    for qid in ([67554],[67555],[67556],[67557])
    )as P

这是我尝试过的代码。需要帮助!

最佳答案

这是一种可能性,使用相当通用的语法:

select CVID, CID, sum(case when QID = 67554 then LCD else 0 end) as [67554],
                  sum(case when QID = 67555 then LCD else 0 end) as [67555],
                  sum(case when QID = 67556 then LCD else 0 end) as [67556],
                  sum(case when QID = 67557 then LCD else 0 end) as [67557] 
from test1
group by CVID, CID;

我在 SQL Server 2012 的 SSMS 中对此进行了测试。

关于sql - 将行旋转到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48449577/

相关文章:

mysql - 如何在 MySQL 中返回数据透视表输出?

mysql - 如何在 Eloquent 中重命名属性?

sql-server - TSQL : Need to have new column instead of next row

sql - 如果前一个值为空,如何获取倒数第二个值

sql-server - 多列上的 SQL Server PIVOT 正在丢失数据

mysql - SQL 是否可以从 "list"进行选择?里面的例子

mysql - 如何计算派生表中的行数?

sql - 基本 SQL 如何选择大于 100000 和小于 200000

mysql - 更新行,如果更新失败则删除同一行

SQL Server 2000 - "Actual Number of Rows"到底是什么?