Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
+2 votes
3 views
in SQL by (20.3k points)

Consider a database table holding names, with three rows:

Peter

Paul

Mary

Is there an easy way to turn this into a single string of Peter, Paul, Mary?

1 Answer

+2 votes
by (40.7k points)
edited by

In SQL 2005, if you are trying to join two tables with one-to-many relationships use XML PATH method to concatenate the rows:

Are you interested in learning SQL from scratch! Have a look at this interesting video on SQL provided by Intellipaat:

 Table: Employees 
DepatmentID  EmployeeName
OPJashmine
OPSam
OPDalia
MNMoly
MNEdward
Result:
DepartmentIDEmployeeName
OPJashmine, Sam, Dalia
MNMoly, Edward
 Use this code:
SELECT DISTINCT EM2.DepartmentID,     SUBSTRING((SELECT ','+EM1.EmployeeName AS [text()]            FROM dbo.Empolyees EM1            WHERE EM1.EmployeeID = EM2.EmployeeID            ORDER BY EM1.DepartmentID            FOR XML PATH ('')        ), 2, 1000) [Employees]FROM dbo.Employees EM2 
  • You can also use STRING_AGG to do the same in this way:
SELECT STRING_AGG( ISNULL(EmployeeName, ' '), ',') As Countries

       From FROM dbo.Employees EM

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...