[英]Transpose rows to columns - pivot in SQL Server 2008 using an id column
我有一个包含logid
, skilllevel
, logskill
列的表,数据示例如下所示:
logid skilllevel logonskill skillposition
--------------------------------------------
101 90 1 1
101 40 2 2
102 30 4 1
我想按以下方式安排它:
logid skilllevel1 skilllevel2 skilllevel3 logonskill1 logonskill2 logonskill3
101 90 40 60 1 2 3
102 30 20 10 4 5 6
skilllevel1
对应于logonskill1
作为等skillposition
是子串logonskill
我该如何实现?
您可以使用此查询。
SELECT * FROM (
select logid, skilllevel val, 'skilllevel' + CONVERT(VARCHAR,skillposition) colName from MyTable
UNION ALL
select logid, logonskill val, 'logonskill' + CONVERT(VARCHAR,skillposition) colName from MyTable
) SRC
PIVOT (MAX(val) FOR colName IN ([skilllevel1],[skilllevel2],[skilllevel3],[logonskill1],[logonskill2],[logonskill3])) AS PVT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.