mssql 一对多的关系合并成一对一(用分割符隔开)

use Tempdb
go
--> --> 
 
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([id] int,[name] nvarchar(4))
Insert #A
select 1,N'tom' union all
select 2,N'jack' union all
select 3,N'bone'
Go


 
if not object_id(N'Tempdb..#B') is null
drop table #B
Go
Create table #B([id] int,[address] nvarchar(8))
Insert #B
select 1,N'beijing' union all
select 1,N'shanghai' union all
select 1,N'tianjin' union all
select 2,N'beijing' union all
select 2,N'chengdu' union all
select 3,N'liaoning' union all
select 3,N'shanghai' union all
select 3,N'nanjing'
Go
select Name, address=stuff((select ','+address from #B where ID=a.ID for xml path('')),1,1,'') from #A AS a
/*
Name address
tom beijing,shanghai,tianjin
jack beijing,chengdu
bone liaoning,shanghai,nanjing
*/

猜你喜欢

转载自blog.csdn.net/xiongxyt2/article/details/38041477