Учитывая приведенный выше пример COLORS, вы можете попробовать вот что:
create table Colors
(
ID INT,
COLOR varchar(32)
)
INSERT INTO Colors values(1, 'WHITE')
INSERT INTO Colors values(1, 'RED')
INSERT INTO Colors values(2, 'BLACK')
INSERT INTO Colors values(2, 'RED')
INSERT INTO Colors values(3, 'GREEN')
INSERT INTO Colors values(3, 'RED')
WITH UniqueColors AS ( SELECT DISTINCT ID FROM Colors )
SELECT
ID,
STUFF(
( SELECT '; '+COLOR
FROM Colors
WHERE ID = UniqueColors.ID
FOR XML PATH('')
)
, 1, 2, ''
) AS [ColorList]
FROM UniqueColors
Это было взято из другого примера на SO.