如何将行转换为列Sql Server

如何将行转换为列Sql Server,sql,sql-server,sql-server-2005,sql-server-2012,sql-server-2008-r2,Sql,Sql Server,Sql Server 2005,Sql Server 2012,Sql Server 2008 R2,如何在SQL serer中将下表数据的行转换为列 实际表格 期望表 下面是一个示例查询,可以帮助您实现所需的输出。如果您也有5行实数,则此查询将起作用。如果数据中有更多的行和种类,则需要根据数据和所需的输出调整查询 SELECT MAX(CASE WHEN LabelID = 1 THEN LabelName END) [1], MAX(CASE WHEN LabelID = 2 THEN LabelName END) [2], MAX(CASE WHEN LabelID = 3 THEN

如何在SQL serer中将下表数据的行转换为列

实际表格

期望表


下面是一个示例查询,可以帮助您实现所需的输出。如果您也有5行实数,则此查询将起作用。如果数据中有更多的行和种类,则需要根据数据和所需的输出调整查询

SELECT 
MAX(CASE WHEN LabelID = 1 THEN  LabelName END) [1],
MAX(CASE WHEN LabelID = 2 THEN  LabelName END) [2],
MAX(CASE WHEN LabelID = 3 THEN  LabelName END) [3],
MAX(CASE WHEN LabelID = 4 THEN  LabelName END) [4],
MAX(CASE WHEN LabelID = 5 THEN  LabelName END)[5]
FROM your_table

这回答了你的问题吗?为什么标记3个完全不同的SQL Server版本,所有版本都不受支持,而其中2个版本完全不受支持。如果您使用的是2005,那么您发现的许多答案可能都不起作用,因为您使用的技术已经5年没有支持了。您是否有更多的行用于1、2或。。。?
    1  |    2   |   3   |   4    |  5   
------------------------------------------
Label1 | Label2 | Labe3 | Label4 | Label15
SELECT 
MAX(CASE WHEN LabelID = 1 THEN  LabelName END) [1],
MAX(CASE WHEN LabelID = 2 THEN  LabelName END) [2],
MAX(CASE WHEN LabelID = 3 THEN  LabelName END) [3],
MAX(CASE WHEN LabelID = 4 THEN  LabelName END) [4],
MAX(CASE WHEN LabelID = 5 THEN  LabelName END)[5]
FROM your_table