Для SQL 2005+ что-нибудь подобное поможет?
;with data as
(
SELECT 'Company1' AS company, 'Contact1' AS contact UNION ALL
SELECT 'Company1' AS company, 'Contact2' AS contact UNION ALL
SELECT 'Company1' AS company, 'Contact3' AS contact UNION ALL
SELECT 'Company1' AS company, 'Contact5' AS contact UNION ALL
SELECT 'Company2' AS company, 'Contact1' AS contact UNION ALL
SELECT 'Company3' AS company, 'Contact1' AS contact
)
SELECT
company
,STUFF((
SELECT ',' + contact
FROM data d2
WHERE d2.company = d1.company
FOR XML PATH('')), 1, 1, '') as contacts
FROM data d1
GROUP BY company