Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak połączyć wiele wierszy o tym samym identyfikatorze w sql?

W serwerze SQL możesz to zrobić w następujący sposób:

ZAPYTANIE

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

DANE TESTOWE

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')

WYJŚCIE

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nowe funkcje SQL Server 2019

  2. Przypadki użycia instrukcji MERGE programu SQL Server:synchronizowanie tabel online i historii

  3. Wydajność serwera SQL TOP IO Query -2

  4. Jak znaleźć domyślną lokalizację plików danych i plików dziennika w programie SQL Server?

  5. Jak działa instrukcja IF w SQL Server