Comma Separate a Table Column in SQL Server

In SQL Server, you can comma separate a table column using the FOR XML PATH method or the STRING_AGG function (available in SQL Server 2017 and later versions).

Syntax:

-- Using FOR XML PATH method 
SELECT STUFF(( SELECT ',' + column_name FROM table_name FOR XML PATH('') ), 1, 1, '') AS comma_separated_column; -- Using STRING_AGG function (SQL Server 2017 and later)
SELECT STRING_AGG(column_name, ',') AS comma_separated_column FROM table_name;

Example 1: Comma Separate a Column using FOR XML PATH

Let's say we have a table called colors with a column called color_name, and we want to comma separate the values in the column.

Table Data:

color_id color_name
1 Red
2 Green
3 Blue

Query:

SELECT STUFF(( SELECT ',' + color_name FROM colors FOR XML PATH('') ), 1, 1, '') AS comma_separated_colors; 

Result:

comma_separated_colors
Red,Green,Blue

The result will display the comma separated values of the color_name column.

Example 2: Comma Separate a Column using STRING_AGG (SQL Server 2017 and later)

Let's say we have a table called colors with a column called color_name, and we want to comma separate the values in the column using the STRING_AGG function.

Table Data:

color_id color_name
1 Red
2 Green
3 Blue

Query:

SELECT STRING_AGG(color_name, ',') AS comma_separated_colors FROM colors; 

Result:

comma_separated_colors
Red,Green,Blue

The result will display the comma separated values of the color_name column.