[英]Pivoting rows to columns
两件事:确保您有一个要旋转的源表。 源表将包括您希望聚合的列。 在这种情况下,我给了它别名“src”。 其次,当您使用数字作为列名时,请确保使用括号。 或者,列名以字母开头。 例如,[67554] 为 Col_67554。 我在代码中提供了那个例子。
select cvid, cid,[67554] as Col_67554,[67555],[67556],[67557]
from
(select cvid, cid, lcd, qid from #temp2) as src
pivot
(
max(lcd) for qid in ([67554],[67555],[67556],[67557])
) 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 中对此进行了测试。
如果您使用的是 Oracle SQL,请尝试
select * from (
select cvid, cid, qid, lcd
from #temp2
) a
pivot
(
max(lcd)
for qid in (67554,67555,67556,67557)
) b
order by cvid;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.