如何使用join处理重复行

sauutmhj  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(235)

我有一张table。

------------------------- 
KeyInstn  | SwiftBICCode  
100369    |  BOFAUSV1     
100369    |  MLCOUS33

keyinstn\表

------------------------- 
KeyInstn  | country  
100369    | USA
100370    | India

我正在尝试将keyinstn\u表与bic\u表连接起来。
我想以逗号分隔的形式连接这两个值。
如何得到这样的结果

------------------------- 
KeyInstn  | country  | SwiftBICCode   
100369    | USA      | BOFAUSV1,MLCOUS33
100370    | India    | BOFH76HG
-------------------------
sg2wtvxw

sg2wtvxw1#

如果数据库版本为sql server 2017+,则可以使用以下选项:

SELECT a.keyInstn, country,STRING_AGG(SwiftBICCode, ', ') AS SwiftBICCode
FROM tablename a inner join keyInstn_table b on a.keyInstn=b.KeyInstn
GROUP BY a.keyInstn,country

或者,您可以使用 stuff() 对于较低版本的sql server

select u.keyInstn, country, 
stuff(( select concat( ',', SwiftBICCode) from tablename y 
        where y.keyInstn= u.keyInstn for xml path('')),1,1, '') 
from tablename u inner join keyInstn_table b on u.keyInstn=b.KeyInstn
group by u.keyInstn,country

相关问题