并排显示行,枢轴类型

时间:2011-09-23 21:03:22

标签: sql sql-server-2005 sql-server-2008 pivot

我有一张这样的表

Column1 | Column2
-------------------
A       | 1
A       | 2
A       | 3
B       | 4
B       | 5
B       | 3
C       | 2
C       | 2
C       | 2
D       | 7
D       | 8
D       | 9

我想将其输出为

A  |  B  |  C  |  D
--------------------
1  |  4  |  2  |  7
2  |  5  |  2  |  8
3  |  3  |  2  |  9

它将具有固定的行/列,如A,B,C,D。 你能在SQL Server 2005/2008中推荐一个查询吗?

1 个答案:

答案 0 :(得分:1)

最好知道表中的聚簇键,因为结果后订单可能会有所不同。马丁是对的,试试这个,它会让你开始:

SELECT pvt.A,
       pvt.B,
       pvt.C,
       pvt.D
FROM   (SELECT *,
               row=ROW_NUMBER() OVER(PARTITION BY Column1 ORDER BY (SELECT 1))
        FROM   yourtable) AS A 
        PIVOT (MIN(Column2) FOR Column1 IN ([A], [B], [C], [D]))
       AS pvt