sql >> Database >  >> RDS >> Sqlserver

Transponeren in SQL Server 2012

Maar als je DYNAMISCH wilt:Sql DEMO

Eerst heb je een tijdelijke tabel nodig om een ​​row_id te maken

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

Dan kun je de dynamische draairoute volgen

Maak de verschillende kolommen

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

Maak de spilquery:

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

Voer het uit

execute(@query);

OUTPUT's:



  1. kies uit twee tabellen waarin de gekoppelde kolom null kan zijn

  2. Heroku Rails Rake Task om productie en lokale database te synchroniseren

  3. Datums middelen in orakel sql

  4. beveiligingsimplicaties van het opzetten van mysql aws-beveiligingsgroep