【发布时间】:2020-03-24 20:59:37
【问题描述】:
我有以下三个表格,我想从中得到一个具体的结果
TableA -
key1 key2
121 4
131 4
141 5
151 3
161 3
171 6
181 6
191 6
... ...
TableB -
key1 key3
121 1001
131 1111
141 1111
151 1222
161 1222
171 1234
181 1001
191 1111
... ...
TableC -
key3 key4
1001 "aa"
1111 "gg"
1222 "hh"
1234 "jj"
... ...
我想要一个 SQL 查询(可以使用内连接)给我以下结果:-
New_Table -
key2 key4
3 "hh"
4 "aa", "gg"
5 "gg"
6 "aa", "gg", "jj"
我从Stackoverflow 得到了以下查询的答复:-
select t1.key2, string_agg(t3.key4, ',') key4
from table1 t1
inner join table2 t2 on t2.key1 = t1.key1
inner join table3 t3 on t3.key3 = t1.key3
group by t1.key2
但是我的 SQL 服务器不允许使用 string_agg() 函数!
如何将 string_agg() 替换为旧版本 SQL Server 的等效形式?
SQL - Microsoft SQL Server 2012
【问题讨论】:
-
那么为什么要为问题添加mysql标签呢?既然你说这是针对 SQL Server 的。
-
糟糕,抱歉!
-
“旧版本的 SQL Server”并没有真正指定我们需要知道的版本,是吗? :P
-
微软 SQL Server 2012
-
这能回答你的问题吗? string_agg for sql server pre 2017