给出以下SQL表(带数据)
create table a (key1 INT, value1 NVARCHAR(MAX))
create table b (fk INT, value2 NVARCHAR(MAX))
INSERT INTO a(key1, value1) values (1, 'test1')
INSERT INTO a(key1, value1) values (2, 'test2')
INSERT INTO b(fk, value2) values (1, 'b1.1')
INSERT INTO b(fk, value2) values (1, 'b1.2')
INSERT INTO b(fk, value2) values (1, 'b1.3')
我想将b中的外键值连接在一起,如下所示:
key1 value1 col
1 test1 b1.1, b1.2, b1.3
2 test2 NULL
我知道(理论上)使用FOR XML PATH是可能的,我只是想不出来
答案 0 :(得分:5)
这可以为您提供所需的结果:
select a.key1,
a.value1,
stuff((select distinct ', ' + value2
from b
where a.key1 = b.fk
for XML path('')),1,1,'')
from a