Microsoft SQL Server
String geaggregeerde functies in SQL Server
Zoeken…
STUFF gebruiken voor tekenreeksaggregatie
We hebben een studententabel met SubjectId. Hier is de vereiste om samen te voegen op basis van subjectId.
Alle SQL Server-versies
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 voor String Aggregation
In het geval van SQL Server 2017 of vnext kunnen we de ingebouwde STRING_AGG gebruiken voor deze aggregatie. Voor dezelfde studententabel
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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow