sql >> Database teknologi >  >> RDS >> Sqlserver

Oprulning af flere rækker i en enkelt række

Bare brug den samme metode til de andre kolonner:

SELECT
    t.Department,
    Worker = 
        STUFF((
            SELECT ';' + Worker
            FROM tbl 
            WHERE Department = t.Department
            ORDER BY Worker
            FOR XML PATH(''), TYPE
        ).value('text()[1]','NVARCHAR(MAX)'), 1, 1, N''),
    Phone = 
        STUFF((
            SELECT ';' + Phone
            FROM tbl 
            WHERE Department = t.Department
            ORDER BY Worker
            FOR XML PATH(''), TYPE
        ).value('text()[1]','NVARCHAR(MAX)'), 1, 1, N''),
    Ext = 
        STUFF((
            SELECT ';' + Ext
            FROM tbl 
            WHERE Department = t.Department
            ORDER BY Worker
            FOR XML PATH(''), TYPE
        ).value('text()[1]','NVARCHAR(MAX)'), 1, 1, N'')
FROM tbl t
GROUP BY t.Department


  1. Hvad blokerer Vælg top 1 * fra Tabelnavn med (nolock) fra at returnere et resultat?

  2. Hvordan bruger jeg mysql source-kommandoen med en mysql-variabel?

  3. Mulig forklaring på MED RECURSIVE Query Postgres

  4. Hvordan skal jeg designe mine MYSQL-tabeller?