[英]how to concatenate one to many records in sql server
我在sql server中有兩個表User
和UserRoles
。 User
表具有基本用戶信息,例如UserId,Name
等, UserRoles
具有UserId,RoleName
等列。 這兩個表之間存在一對多的關系,即一個用戶可以擁有多個角色。
用戶
UserId Name
1 A
2 B
3 C
的UserRole
UserId Rolename
1 Manager
1 Event Organiser
2 Supervisor
2 Employee
2 Some otherRole
我需要在sql中編寫一個查詢,它將返回如下。 即將一個到多個記錄連接成一個字符串
UserId Roles
1 Manager,Event Organiser
2 Supervisor,Employee,Some otherRole
試試這個,
Declare @t1 table(UserId int,name varchar(20))
insert into @t1 values(1,'A'),(2,'B'),(3,'C')
--select * from @t1
Declare @t table(UserId int,Rolename varchar(20))
insert into @t values(1,'Manager'),(1,'Event Organiser'),(2,'Supervisor'),(2,'Employee'),(2,'Some otherRole')
select
userid,
stuff((select ','+ Rolename from @t b where a.UserId=b.UserId for xml path('')),1,1,'') [Roles]
from @t1 a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.