【发布时间】:2019-03-19 07:20:52
【问题描述】:
我正在寻求解决一个问题,其中我的 SQL 表具有以下表定义:
UniqueID GroupID DepartmentID
-----------------------------------
1 2 D005
2 2 D006
3 2 D007
4 5 D002
5 1 D006
6 3 D001
7 3 D009
8 3 D002
9 3 D004
10 3 D006
此表存储属于特定组的不同部门的信息。
我正在寻找一个简单且优化的查询,该查询将部门列表作为逗号分隔值(在同一行中)针对每个组输出 输出应该是这样的:
GroupID DepartmentList
-----------------------------
2 D005,D006,D007
5 D002
1 D006
3 D001,D009,D002,D004,D006
【问题讨论】:
-
这里没有表定义
-
@jtate 我是堆栈溢出的新手,我无法应用适当的格式,所以我将表定义粘贴为 HTML 表。您可以运行代码 sn-ps 来查看表定义以及我想要的输出。
-
如果您使用的是 SQL Server 2017,则有 STRING_AGG。如果没有,旧版本的 SQL Server 有很多解决方法
-
你真的应该检查一下 - 这已经被问过 1000 次,每次都得到完全相同(正确)的答案。顺便说一句,答案已经完成了创建插入语句的工作 - 如果您首先将它们添加到您的问题中,那么每个人都会更容易。
标签: sql-server tsql string-aggregation