Microsoft SQL Server
Funciones agregadas de cadenas en SQL Server
Buscar..
Usando STUFF para la agregación de cadenas
Tenemos una mesa de estudiantes con SubjectId. Aquí el requisito es concatenar en base a subjectId.
Todas las versiones de SQL Server
create table #yourstudent (subjectid int, studentname varchar(10))
insert into #yourstudent (subjectid, studentname) values
( 1 ,'Mary' )
,( 1 ,'John' )
,( 1 ,'Sam' )
,( 2 ,'Alaina')
,( 2 ,'Edward')
select subjectid, stuff(( select concat( ',', studentname) from #yourstudent y where y.subjectid = u.subjectid for xml path('')),1,1, '')
from #yourstudent u
group by subjectid
String_Agg for String Aggregation
En el caso de SQL Server 2017 o vnext, podemos usar STRING_AGG incorporado para esta agregación. Para la misma mesa de estudiantes,
create table #yourstudent (subjectid int, studentname varchar(10))
insert into #yourstudent (subjectid, studentname) values
( 1 ,'Mary' )
,( 1 ,'John' )
,( 1 ,'Sam' )
,( 2 ,'Alaina')
,( 2 ,'Edward')
select subjectid, string_agg(studentname, ',') from #yourstudent
group by subjectid
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow