What is the most efficient way to concatenate strings in SQL Server? I have this code:

DECLARE @MyTable AS TABLE
(
   [Month] INT,
   Salary INT
);

INSERT INTO @MyTable VALUES (1,2000), (1,3100);

SELECT [Month], Salary FROM @MyTable;


Output:



I want to concat the Salary (grouping by month) so that it will be NVARCHAR like this: '2000,3100'

How would I do this efficiently?
If you're on SQL Server 2017+, there's a built-in function that's a bit simpler to use than a subquery with XML and STUFF, etc. 

You can use STRING_AGG.

SELECT p.OwnerUserId, STRING_AGG(p.Score, ', ') AS aggro
FROM dbo.Posts AS p
WHERE p.Score &gt; 100
GROUP BY p.OwnerUserId


SELECT p.OwnerUserId, STRING_AGG(p.Score, ', ')                        
                                 WITHIN GROUP (ORDER BY p.Score DESC) AS aggro_order
FROM dbo.Posts AS p
WHERE p.Score &gt; 100
GROUP BY p.OwnerUserId