Cách hộp đen để thực hiện việc này là với ÁP DỤNG CHÉO và ĐƯỜNG LẮP XML:
declare @t table (id int, link_id int, name varchar(max))
insert into @t select 1, 11, 'test1'
union all select 2, 11, 'test2'
union all select 3, 11, 'test3'
union all select 4, 12, 'test4'
select b.link_id, d.link_names
from (
select distinct link_id
from @t a
) b
cross apply (
select name + ', ' as [text()]
from @t c
where b.link_id = c.link_id
for xml path('')
) d (link_names)
Đối với mỗi hàng, ÁP DỤNG CHÉO thực hiện truy vấn con được áp dụng. Trong trường hợp này, truy vấn con được gọi hai lần, cho link_id 11 và 12. Sau đó truy vấn con lạm dụng toán tử FOR XML để thêm các chuỗi lại với nhau.
Nếu bạn chạy truy vấn, nó sẽ in ra:
11 test1, test2, test3,
12 test4,