sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2012 での転置

    ただし、動的が必要な場合:Sql DEMO

    まず、row_id を作成するためのテンポラル テーブルが必要です

    SELECT row_number() over (partition by [Country] order by [StateCity]) [rn], 
           [StateCity],
           [Country]
    INTO temp
    FROM State;
    

    その後、動的なピボット ルートに進むことができます

    さまざまな列を作成する

    SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.[Country]) 
                FROM temp c
                FOR XML PATH(''), TYPE
                ).value('.', 'NVARCHAR(MAX)') 
            ,1,1,'')
    

    ピボット クエリを作成します:

    set @query = 'SELECT rn, ' + @cols + ' from 
                (
                    select [rn]
                         , [StateCity]
                         , [Country]
                    from temp
               ) x
                pivot 
                (
                     max(StateCity)
                    for [Country] in (' + @cols + ')
                ) p ';
    

    実行してください

    execute(@query);
    

    アウトプット:



    1. Postgresで動的クエリ+ユーザー定義データ型を使用する

    2. SQL Server 2008のインストールエラー:Microsoft VisualStudio2008の以前のリリース

    3. djangoモデルフィールドでvarchar(N)の代わりにchar(N)データ型を適用する方法

    4. 二重引用符を使用してpostgresでCSVに出力