Nat*_*nen 1 sql concatenation for-xml
给出以下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')
Run Code Online (Sandbox Code Playgroud)
我想将b中的外键值连接在一起,如下所示:
key1 value1 col
1 test1 b1.1, b1.2, b1.3
2 test2 NULL
Run Code Online (Sandbox Code Playgroud)
我知道(理论上)使用FOR XML PATH是可能的,我只是想不出来
这应该可以得到你想要的结果:
select a.key1,
a.value1,
stuff((select distinct ', ' + value2
from b
where a.key1 = b.fk
for XML path('')),1,1,'')
from a
Run Code Online (Sandbox Code Playgroud)