【问题标题】:Transpose some rows of data into next columns in SQL Server 2008将一些数据行转置到 SQL Server 2008 中的下一列
【发布时间】:2014-11-03 22:56:27
【问题描述】:

我需要在 SQL Server 2008 中仅将几行转换为其他列

源表数据

Test    Cmdid   Test Name   Test Value
TC1     1        TN1         A
TC1     2        TN1         B
TC1     3        TN1         C
TC1     4        TN1         D

TC1     1        TN2         X
TC1     2        TN2         Y
TC1     3        TN2         Z
TC1     4        TN2         M

这些数据应该如下转置

Test    Cmdid   TN1Values   TN2Values
TC1      1       A           X
TC1      2       B           Y
TC1      3       C           Z
TC1      4       D           M

如何转置数据?

【问题讨论】:

    标签: sql-server sql-server-2008 transpose


    【解决方案1】:

    除非我在这里遗漏了什么,否则这看起来像是一个普通的数据透视查询:

    SELECT [Test], [Cmdid], [TN1] AS TN1Values, [TN2] AS TN2Values
    FROM Table1
    PIVOT (
        MAX([Test Value]) FOR [Test Name] IN ([TN1],[TN2])
    ) pvt
    

    Sample SQL Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多