Это сложно в SQL Server 2008 - вы должны обновить программное обеспечение! Это в конце его жизни.
Метод использует XML:
select s.style,
stuff( (select ',' + convert(varchar(255), curr)
from (select t.*,
row_number() over (partition by t.style order by (select null)) as rowid
from t
) t cross apply
(values (GPB, 1), (EUR, 2), (USD, 3), (AUD, 4)
) v(curr, ord)
where t.style = s.style
order by rowid, ord
for xml path ('')
), 1, 1, '') as currencies
from (select distinct style from t) s;
order by
объединяет все значения из одной строки и упорядочивает значения по столбцам.