T-SQL查询连接表并将行组合成逗号分隔列表

时间:2018-01-31 18:45:09

标签: sql sql-server tsql

我有两张表如下:

用户

| Name   | TagsId |  
+--------+--------+  
| Bob    |  3     |  
| Jim    |  2     |  
| Bob    |  2     |   
| Frank  |  3     |  
| Jim    |  1     |  

标签

| Name    | Id  |
+---------+-----+
| web     |  1  |
| desktop |  2  |
| phone   |  3  |

我想要的结果如下:

| Name  | TagList        |
+-------+----------------+
| Bob   | desktop, phone |
| Jim   | desktop, web   |
| Frank | phone          |

我可以使用以下查询在SQL Server 2017中完成此任务:

SELECT 
    u.name, STRING_AGG (t.name, ', ') as taglist 
FROM 
    users AS u       
LEFT JOIN 
    Tags AS t ON u.TagsId = t.Id 
GROUP BY 
    u.name;

但遗憾的是我的数据存在于SQL Server 2016服务器中,因此无法使用STRING_AGG函数。

如何在没有STRING_AGG的情况下完成此操作?

0 个答案:

没有答案