STUFF AND FOR XML PATH in SQL Server :-
We can use XmlPath(”) to concatenate multiple column data into single row && Stuff is used to remove the first ‘,’ after string concatenation.
suppose there is a table entrepreneur in a database holding names, with multiple rows like below:-
For Example:-
Company_Id entrepreneur_Name
———- ————————————-
1 Sundar
1 Larry
1 Sergey
2 Steave
2 Tim
3 Bill
3 Sathya
Desired output should be like below:-
Company_Id entrepreneur_Name
———- —————————-
1 Sundar, Larry, Sergey
2 Steave, Tim
3 Bill, Sathya
Concatenate text from multiple rows into a single string in SQL server Using STUFF AND FOR XML PATH
-------------Create a Table with Name entrepreneur
create table entrepreneur
(
Company_Id int,
entrepreneur_Name varchar(25)
)
------------Check The Table Structure
exec sp_columns 'entrepreneur'
-----------Inserting Some records in entrepreneur Table
insert into entrepreneur values(1,'Sundar')
insert into entrepreneur values(1,'Larry')
insert into entrepreneur values(1,'Sergey')
insert into entrepreneur values(2,'Steave')
insert into entrepreneur values(2,'Tim')
insert into entrepreneur values(3,'Bill')
insert into entrepreneur values(3,'Sathya')
---------------Check the records in entrepreneur table
select * from entrepreneur
---------------Check the records in entrepreneur table
select * from entrepreneur
---------------Finally Concatenate text from multiple rows into a single string in SQL server------------
select distinct Company_Id ,
STUFF((Select ','+entrepreneur_Name
from entrepreneur e1
where e1.Company_Id=e2.Company_Id
FOR XML PATH('')),1,1,'') [entrepreneur_name] from entrepreneur e2
After executing of above script you will get the output like below:-
Company_Id entrepreneur_name
1 Sundar,Larry,Sergey
2 Steave,Tim
3 Bill,Sathya

STUFF AND FOR XML PATH