带连接的sql连接表

kxkpmulp  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(378)

我有一个带有 COALESCE 运算符将一行中的所有行与分隔符连接起来( ; ). 以下是构建查询的代码:

DECLARE @db NVARCHAR(max)  
SELECT @db = COALESCE(@db+';','') + OID FROM COD_TBL
SELECT OID = @db
INNER JOIN EMP_TBL ON EMP_TBL.ID=COD_TBL.ID

不幸的是,我要把这个还给你。
msg 156,级别15,状态1,第4行关键字“join”附近的语法不正确。
表1:环境管理计划

ID NAME  
1  RICHARD
2  RAYMOND

表2:化学需氧量tbl

ID COD
1  AA
2  BB
1  CC
2  DD
1  EE
2  FF

期望输出:

ID NAME     OID  
1  RICHARD  AA;CC;EE
2  RAYMOND  BB;DD;FF

请帮我解决这个问题。

pkln4tw6

pkln4tw61#

一个选项是使用字符串聚合函数 string_agg() -启动sql server 2017可用:

select e.id, e.name, string_agg(cod, ';') within group(order by cod) oid
from emp_tbl e
inner join code_tbl c on c.id = e.id
group by e.id, e.name

相关问题