Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL-Einzelspalte, aufgeteilt auf mehrere Spalten

Sie benötigen eine eindeutige Spalte für ORDER BY um deterministische Ergebnisse zu erhalten, aber etwas in dieser Richtung sollte funktionieren.

;WITH T
     AS (SELECT [FirstName],
                ( ROW_NUMBER() OVER (ORDER BY (SELECT 0)) - 1 ) / 4 AS Row,
                ( ROW_NUMBER() OVER (ORDER BY (SELECT 0)) - 1 ) % 4 AS Col
         FROM   [User])
SELECT [0] AS Column1,
       [1] AS Column2,
       [2] AS Column3,
       [3] AS Column4
FROM   T PIVOT (MAX(name) FOR Col IN ([0], [1], [2], [3])) P 
ORDER BY Row