【问题标题】:Transposing a table with SQL使用 SQL 转置表
【发布时间】:2009-01-13 03:47:47
【问题描述】:

我有一个这样的 SQL 表

光伏区伙伴党 851 M010 名称1 561 M011 名字2 第869章 ...

而且我需要使用 T-SQL(不是报告服务或其他任何东西)对其进行转位,使其看起来像这样:

对方 M010 M011 M012 .... 姓名1 851 姓名2 561 姓名2 869

问题是我不知道我会有多少个区号,所以实际上可以有任意数量的列。

有什么想法可以做到这一点吗?万分感谢

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:
    【解决方案2】:

    您可以通过游标循环和临时表来执行此操作。

    选择所有的区号, 为每个提取的行运行游标 根据需要将行插入临时表 关闭光标 从您的临时表中选择

    【讨论】:

      【解决方案3】:

      如果您使用 SQL Server 2005 或最新版本,请使用 pivot 函数

      SELECT 
          CouterParty ,
          [M010] ,
          [M011],
          [M012]
      FROM    ( SELECT    
                  PV ,Area    ,CouterParty
                FROM      TablesName AS T
              ) AS T1Temp PIVOT ( Sum(PV) FOR T1Temp.CouterParty IN ( [M010],
                                                                [M011],
                                                                [M012] ) )  As PivotTable
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 2020-10-08
        • 1970-01-01
        • 1970-01-01
        • 2021-09-13
        相关资源
        最近更新 更多