2017-12-20 1 views
0

Dies ist die Tabelle, die andere Technologie mit der gleichen ID hatGruppe zusammen die Datensätze durch Spalte

id technology  
------------------ 
1 MCA   
1 BSC SCIENCE 
2 BTECH   
3 BTECH   
3 MTECH 

Wie kann ich die Ausgangsgruppe zusammenkommen wie:

id technology  
-------------------------- 
1 MCA, BSC SCIENCE    
2 BTECH   
3 BTECH, MTECH 
+0

Was haben Sie versucht, was das Ergebnis Ihrer Forschung ist, welche spezifischen Problem, das Sie nicht lösen können? Bitte lesen Sie [ask] und [mcve] in [help] – Pred

+0

Haben Sie ein Google von 'STUFF',' FOR XML PATH' und 'Delimited String'. Es gibt 100 Antworten, die alle dieselbe Logik verwenden. – Larnu

+0

Welche SQL-Server-Version verwenden Sie? – plaidDK

Antwort

2

Mit STUFF Funktion & FOR XML PAT als nächstes: -

STUFF((SELECT DISTINCT ', ' + technology 
      FROM #tempTable b 
      WHERE b.id = a.id 
      FOR XML PATH('')), 1, 2, '') 

Demo: -

create table #tempTable 
(
id int, 
technology nvarchar(max) 
) 

insert into #tempTable values  
(1 ,'MCA') 
,(1 ,'BSC SCIENCE') 
,(2 ,'BTECH') 
,(3 ,'BTECH') 
,(3 ,'MTECH') 


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

Ergebnis: -

1 BSC SCIENCE, MCA 
2 BTECH 
3 BTECH, MTECH 
0
declare @tab table(id int, technology varchar(30)) 
insert into @tab values(1 , 'MCA'), 
(1, 'BSC SCIENCE'), 
(2 , 'BTECH')  , 
(3 , 'BTECH')  , 
(3 , 'MTECH') 


SELECT t1.ID, 
    STUFF(
       (SELECT ',' + technology FROM @tab t where t.id = t1.id FOR XML PATH ('')), 1, 1, '' 
       ) 
FROM @tab t1 GROUP BY id 

Ausgang

ID (No column name) 
1 MCA,BSC SCIENCE 
2 BTECH 
3 BTECH,MTECH 
Verwandte Themen