• Here's a slightly more succinct version inspired by code from this article http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

    SELECT t1.col1,

    (

    SELECT

    CASE WHEN ROW_NUMBER() OVER(ORDER BY col1, col2)=1 THEN '' ELSE ',' END + col2

    FROM

    TestTable

    WHERE

    col1 = t1.col1

    ORDER BY

    col1 ,col2

    FOR XML PATH('')

    )

    FROM

    TestTable t1

    GROUP BY

    col1