У меня есть запрос, который использует соединение, затем группирование по caseId
и затем конкат-подобную функцию, используя STUFF
.
SELECT distinct [CaseID], STUFF((SELECT ';' +space(1)+ A.[AssignedPathologist]+' ' FROM CTE1 A
WHERE A.[CaseID]=B.[CaseID] FOR XML PATH('')),1,1,'') As [AssignedPathologist]
From CTE1 B
Group By [CaseID]
Проблема в том, что этот запрос Это супер, очень медленно, и я попытался оптимизировать его, используя CONCAT
вместо.
SELECT distinct A.[CaseID], [AssignedPathologist] = CASE A.AssignedPathologist = B.AssignedPathologist
WHEN 1 THEN A.AssignedPathologist
ELSE CONCAT(A.AssignedPathologist, ' ', B.AssignedPathologist)
END
FROM CTE1 A
INNER JOIN CTE1 B ON A.[CaseID]=B.[CaseID]
END
, но это дает мне синтаксическую ошибку здесь
[AssignedPathologist] = CASE A.AssignedPathologist = B.AssignedPathologist
, которая является logi c, потому что Я использовал здесь дважды =
.
Есть ли способ оптимизировать мой запрос, используя CONCAT или другие методы?
Спасибо