同與除了處理空值和XML特殊字符<>&'"
以前的答案。
declare @Managers table
(
ManagerId int,
ManagerName varchar(50)
)
declare @Clients table
(
ClientId int,
ManagerId int,
ClientName varchar(50),
ClientAddress varchar(50),
Details varchar(50)
)
insert into @Managers values(1, 'Manager 1')
insert into @Managers values(2, 'Manager 2')
insert into @Clients values (1, 1, 'Client 1', 'CA 1', 'D 1')
insert into @Clients values (2, 1, 'Client 2', 'CA 2', 'D 2')
insert into @Clients values (3, 2, 'XML special characters &<>" and null values', null, 'D 3')
select M.ManagerName,
stuff((select '; '+
coalesce(C.ClientName, '')+', '+
coalesce(C.ClientAddress, '')+', '+
coalesce(C.Details, '')
from @Clients as C
where C.ManagerId = M.ManagerId
for xml path(''), type).value('.', 'nvarchar(max)'), 1, 2, '') as Clients
from @Managers as M
結果:
ManagerName Clients
----------- ---------------------------------------------------
Manager 1 Client 1, CA 1, D 1; Client 2, CA 2, D 2
Manager 2 XML special characters &<>" and null values, , D 3