T SQL - объединить столбец несколько раз - PullRequest
2 голосов
/ 02 мая 2011

Итак, у меня есть следующая таблица:

ID | Product_Image
300 | /300-01.jpg
300 | /300-02.jpg
301 | /301.jpg
302 | /302.jpg

Там может быть неограниченное количество изображений на один идентификатор. Мне нужно объединить все ссылки на изображения в один столбец, и у меня возникают проблемы при генерации следующего вывода:

ID | Product Images
300 | /300-01.jpg; /300-02.jpg;
301 | /301.jpg;

1 Ответ

3 голосов
/ 02 мая 2011
-- cte with test data
;with T (ID, Product_Image) as
(
select 300, '/300-01.jpg' union all
select 300, '/300-02.jpg' union all
select 301, '/301.jpg' union all
select 302, '/302.jpg'
)

select
  T.ID,
  (select T2.Product_Image+'; '
   from T as T2 
   where T.ID = T2.ID
   for xml path(''), type).value('.[1]', 'nvarchar(max)') as Product_Images
from T
group by T.ID

Результат:

ID   Product_Images
---- -------------------------
300  /300-01.jpg; /300-02.jpg; 
301  /301.jpg; 
302  /302.jpg; 
...