If it is SQL Server 2017 or SQL Server Vnext, SQL Azure you can use STRING_AGG as below:
SELECT id, STRING_AGG(CONCAT(name, ':', [value]), ', ')
FROM #YourTable
GROUP BY id
•••• And if anyone likes to use this for just aggregate one single column value the code will be like this:
SELECT [id_name], STRING_AGG([col_name], ', ')
FROM [table_name]
GROUP BY [id_name]