繁体   English   中英

将行转置为列-使用id列在SQL Server 2008中进行透视

[英]Transpose rows to columns - pivot in SQL Server 2008 using an id column

我有一个包含logidskilllevellogskill列的表,数据示例如下所示:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM