sql server数据透视到行 我怎样才能转动这个轴

sql server数据透视到行 我怎样才能转动这个轴,sql,sql-server,pivot,Sql,Sql Server,Pivot,进入这个 552779 | A-2级1级| G-2级2级O-4级单位 请记住,Allocate可以是86个可能已知字符串集合中的任何字符串值?我是否需要使用Pivot以外的其他技术来执行此操作-新记录上可以有6个字符串的mximum,因为这将是ID与不同字符串关联的最大次数 这在本质上必须是动态的,有6个可能的列,但可能有ID号,其中只有一个字符串与之关联,加上5个空值,另一个ID最多有6个字符串与之关联,以及1-6范围内的各种其他组合 如果您愿意,可以使用pivot作为最后一部分您已经拥有

进入这个

552779 | A-2级1级| G-2级2级O-4级单位

  • 请记住,Allocate可以是86个可能已知字符串集合中的任何字符串值?我是否需要使用Pivot以外的其他技术来执行此操作-新记录上可以有6个字符串的mximum,因为这将是ID与不同字符串关联的最大次数
  • 这在本质上必须是动态的,有6个可能的列,但可能有ID号,其中只有一个字符串与之关联,加上5个空值,另一个ID最多有6个字符串与之关联,以及1-6范围内的各种其他组合

如果您愿意,可以使用pivot作为最后一部分

您已经拥有的代码在哪里?我应该说,第1列中有数千个id重复,分配字段中有各种字符串,因此行数会很大?@user1491269,哎呀,忘了对行号进行分区。固定的
ID         Allocate
552779  A - Level 2 Tier 1
552779  G - Level 2 Tier 2
552779  O -  4 Units
               1           2            3
WITH OrderedItems AS (
    SELECT ID
          ,Allocate
          ,ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Allocate) AS RowNumber
    FROM Table
)
SELECT Id
      ,MAX(CASE WHEN RowNumber = 1 THEN Allocate ELSE NULL END) AS [1]
      ,MAX(CASE WHEN RowNumber = 2 THEN Allocate ELSE NULL END) AS [2]
       ...
FROM OrderedItems
GROUP BY Id