Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Aplatir les lignes de table en colonnes dans SQL Server

Si vous avez un nombre connu ou maximum de colonnes souhaitées, vous pouvez faire un simple PIVOT, sinon, vous devrez passer à DYNAMIQUE

Exemple

 Select *
  From (
        Select [Code]
              ,[Data]
              ,[Col] = concat('Data',Row_Number() over (Partition By [Code] Order by 1/0))
         From  YourTable
       ) src
 Pivot (max([Data]) for [Col] in ([Data1],[Data2],[Data3],[Data4],[Data5])) pvt

Retours

Code        Data1   Data2   Data3   Data4   Data5
SL Payroll  22      33      43      NULL    NULL