sql >> Databáze >  >> RDS >> Sqlserver

Jak zřetězit mnoho řádků se stejným ID v SQL?

V SQL-Server můžete to udělat následovně:

QUERY

SELECT id, displayname = 
    STUFF((SELECT DISTINCT ', ' + displayname
           FROM #t b 
           WHERE b.id = a.id 
          FOR XML PATH('')), 1, 2, '')
FROM #t a
GROUP BY id

TESTOVACÍ DATA

create table #t 
(
id int,
displayname nvarchar(max)
)

insert into #t values    
 (1 ,'Editor')
,(1 ,'Reviewer')
,(7 ,'EIC')
,(7 ,'Editor')
,(7 ,'Reviewer')
,(7 ,'Editor')
,(19,'EIC')
,(19,'Editor')
,(19,'Reviewer')

VÝSTUP

id  displayname
1   Editor, Reviewer
7   Editor, EIC, Reviewer
19  Editor, EIC, Reviewer


  1. Jak nahradit středně pokročilý MySQL nebo MariaDB Master serverem Binlog pomocí MaxScale

  2. SQL Server 2014:Nativní šifrování záloh

  3. Odstraňování problémů s přidělením proměnné paměti na serveru SQL Server

  4. Jak odkazovat na klíče JSON, které obsahují speciální znaky při používání OPENJSON, JSON_QUERY a JSON_VALUE (SQL Server)