sql >> Databasteknik >  >> RDS >> Sqlserver

tsql samlad sträng för grupp efter

Du kan använda For XML som ett knep för att uppnå det från SQL Server 2005 och framåt.

Select
    A.name,
    stuff((
        select ',' + B.address
        from Addresses B
        WHERE A.id=B.name_id
        for xml path('')),1,1,'')
From Names A

Det fungerar bra om du inte redan har kommatecken i adressen, men även om det gjorde det, eftersom din begäran är att sätta kommatecken mellan dem.. detta är förmodligen lika "rätt".




  1. Hur formaterar man om ett datumvärde för en MySQL-kolumn?

  2. Hur man använder REPLACE i SQL

  3. Hur man upptäcker om ett värde innehåller minst en numerisk siffra i MariaDB

  4. sql:DELETE + INSERT vs UPDATE + INSERT