[英]Concatenate two columns and join by ID
並預先感謝! 我正在尋找最有效的方法來連接每個“秘書”,其中JobTitle =“ Assistant”,然后通過“ Empl_code”加入另一個表。 這將在視圖中完成。
declare @Atty_Sec table
( Empl_Code int,
Attorney varchar(20),
Secretary varchar(50),
SecJobTitle varchar(50)
)
insert into @Atty_Sec
select 1,'John Smith','Mary Anne', 'Assistant' union all
select 1,'John Smith', 'Joanne Rockit','Office Manager'union all
select 1,'John Smith', 'Sharon Osbourne','Assistant'union all
select 2,'Steve Jobs', 'Katherine Kay','Assistant' union all
select 2,'Steve Jobs','Rylee Robot','Office Manager' union all
select 3,'Mike Michaels','Joe Joseph','Assistant' union all
select 3,'Mike Michaels','Ronald McDonald','Office Manager'
Select * from @Atty_Sec
加入該表:
declare @UserTable table
(
Empl_Code int,
Attorney varchar(20)
)
insert into @UserTable
select 1,'John Smith' union all
select 2,'Steve Jobs'union all
select 3,'Mike Michaels'
Select * from @UserTable
視圖的輸出應看起來像這樣,其中有兩列“ Empl_Code”,其中一列稱為[Assistants]:
Select A.Empl_Code
,Assistants = B.Value
From (Select Distinct Empl_Code From @Atty_Sec) A
Cross Apply (Select Value=Stuff((Select Distinct ',' + Secretary
From @Atty_Sec
Where Empl_Code=A.Empl_Code
and SecJobTitle ='Assistant'
For XML Path ('')),1,1,'')
) B
返回
Empl_Code Assistants
1 Mary Anne,Sharon Osbourne
2 Katherine Kay
3 Joe Joseph
您可以按以下方式使用分組依據和內容:
select a.empl_code, stuff((select ','+ secretary from @atty_Sec where empl_Code = a.empl_Code and SecJobTitle = 'Assistant' for xml path('')),1,1,'')
from @Atty_Sec a
group by a.Empl_Code
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.