これを試して
Declare @t Table([UserID] int, [AddressLine1] varchar(20), [AddressLine2] varchar(20), [Phone] int);
INSERT INTO @t VALUES
(1, 'First Street', 'Somewhere', 123),
(1, 'Second Street', 'Somewhere2', 124),
(2, '32th Street', 'Somewhere', 125),
(2, '24th Street', 'Somewhere3', 126),
(2, '25th Street', 'Somewhere4', 127);
SELECT
[UserID]
, [New Address] =
STUFF((
SELECT ','
+ [AddressLine1]
+ ', '
+ [AddressLine2]
+ ', '
+ CAST([Phone] AS VARCHAR(10))
FROM @t AS t2
WHERE t1.UserID = t2.UserID
FOR XML PATH('')),1,1,'')
FROM @t t1
GROUP BY t1.[UserID]
//結果
UserID 新しいアドレス
1 First Street, Somewhere, 123,Second Street, Somewhere2, 124
2 32th Street, Somewhere, 125,24th Street, Somewhere3, 126,25th Street, Somewhere4, 127
ここで説明するアプローチ以外にも、同じ問題を解決する方法は他にもたくさんあります。この時点で、Transact-SQL の記事で行の値を連結する方法を調べてください。これは素晴らしい記事です。時間をかけて読んでください (まだ読んでいない場合)。
お役に立てれば