gpt4 book ai didi

sql - 各部门集团员工

转载 作者:行者123 更新时间:2023-12-01 11:49:13 26 4
gpt4 key购买 nike

我有一张表详情

DeptId        EmpID
------- ---------
1 1
1 5
1 3
2 8
2 9

我想像这样对它们进行分组:

DeptId      EmpIDs
------- -------
1 1,5,3
2 8,9

我想在 SQL Server 中使用它。我知道这可以在 MySQL 中使用 Group_Concat 函数来完成。例如

SELECT DeptId, GROUP_CONCAT(EmpId SEPARATOR ',') EmpIDS
FROM Details GROUP BY DeptId

(SQL Fiddle here)

但是如何使用 SQL Server 做到这一点呢?我不知道任何功能。

最佳答案

SQLServer 中模拟 GROUP_CONCAT 的一种方法是使用 CROSS APPLYFOR XML PATH()

select a.[DeptId], SUBSTRING(d.detailsList,1, LEN(d.detailsList) - 1) detailsList
from
(
SELECT DISTINCT [DeptId]
FROM details
) a
CROSS APPLY
(
SELECT [EmpID] + ', '
FROM details AS B
WHERE A.[DeptId] = B.[DeptId]
FOR XML PATH('')
) D (detailsList)

关于sql - 各部门集团员工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com