我想列出所有链接到一个特定的“互动”我希望员工与逗号分隔它们一个行中列出的员工,我有工作,但下面的查询很慢。逗号串联结果分隔列表
SELECT
CONVERT(VARCHAR(254),
COALESCE(
STUFF(
(
SELECT
', ' + LTRIM(RTRIM(REPLACE(emp1.Full_Name,CHAR(9),'')))
FROM Employee emp1 WITH (nolock)
JOIN Rn_Int_Employee rie WITH (nolock) on emp1.Employee_Id = rie.Employee_Id
WHERE rnint.Rn_Interactions_Id = rie.Rn_Interactions_Id
GROUP BY emp1.Full_Name
ORDER BY emp1.Full_Name
FOR XML PATH (''),TYPE).value('text()[1]', 'nvarchar(max)'), 1, 2, '')
,STUFF((
SELECT
', ' + LTRIM(RTRIM(REPLACE(emp1.Full_Name,CHAR(9),'')))
FROM Employee emp1 WITH (nolock)
WHERE rnint.Rn_Create_User=emp1.Rn_Employee_User_Id
GROUP BY emp1.Full_Name
ORDER BY emp1.Full_Name
FOR XML PATH (''),TYPE).value('text()[1]', 'nvarchar(max)'), 1, 2, '')))
AS Employees
FROM Rn_Interactions rnint
有没有人有这样做的更有效的方式提出任何建议?
你可能想尝试codereview.stackexchange.com – JeffUK
发布你的表DDL(包括索引),并添加特定版本的SQL Server的标签。 –
高效?这是一个耗时的查询吗?瓶颈在哪里(看执行计划)? –