2

私は以下のようなテーブルを持っています

Code        Attribute        Value
--------------------------------------
USA         Population       300M
USA         Language         US English
CANADA      Population       30M
USA         Capital          DC
CANADA      Language         CA English

テーブルを 90 度回転し、以下のようなビューを作成してクエリspを実行するにはどうすればよいですか?

Code        Language        Population       Capital
------------------------------------------------------
USA         US English         300M              DC
CANADA      CA English          30M              NULL
4

1 に答える 1

10

使用できますPIVOT(SQL Server 2005+の場合):

SELECT *
FROM YourTable AS T
PIVOT (MIN(Value) FOR Attribute IN ([Language],[Population],[Capital]) AS PT

SQL Server のすべてのバージョンで、これを使用できます。

SELECT  Code, 
        MIN(CASE WHEN Attribute = 'Language' THEN Value END) [Language],
        MIN(CASE WHEN Attribute = 'Population' THEN Value END) [Population],
        MIN(CASE WHEN Attribute = 'Capital' THEN Value END) [Capital]
FROM YourTable
GROUP BY Code
于 2012-07-23T22:09:55.523 に答える