我在查询中使用的东西和xml如下:
select distinct
PayPlanInstGroup,
Dept,
Name
,stuff((select distinct DegreeTitle + '<NLine>' from FACTTable where PID=A.PID and case when @Termid='%' then '1' else Termid end = case when @Termid='%' then '1' else a.Termid end
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,0,'') AS DegreeTerminal
,stuff((select distinct DegreeYear + '<NLine>' from FACTTable where PID=A.PID and case when @Termid='%' then '1' else Termid end = case when @Termid='%' then '1' else a.Termid end
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,0,'') AS DegreeYear
,stuff((select distinct dbo.AimsDecode(termid,'termid') + ' - ' + ClassLevel + ' - ' + ClassPrefix + ' ' + ClassNumber + ' ' + (isnull(ActivityDescr,'')) + '<NLine>' from FACTTable where PID=A.PID and case when @Termid='%' then '1' else Termid end = case when @Termid='%' then '1' else a.Termid end and CampusClass like @Campus and CollegeClass like @College and CollDeptClass like @Colldept
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,0,'') AS [ClasssTaught]
,[TRANSCRIPTONFILEINHR]
,[CVonfileinDeptorFAIR]
,stuff((select distinct guidelines + '<NLine>' from FACTTable where PID=A.PID and case when @Termid='%' then '1' else Termid end = case when @Termid='%' then '1' else a.Termid end and CampusClass like @Campus and CollegeClass like @College and CollDeptClass like @Colldept
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,0,'') AS [GuidelinesMet]
,isnull(stuff((select distinct OtherAcad + '<NLine>' from FACTTable where PID=A.PID and case when @Termid='%' then '1' else Termid end = case when @Termid='%' then '1' else a.Termid end
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,0,''),'') as [OtherAcademicCredentials]
,isnull(stuff((select distinct OtherQualifications + '<NLine>' from FACTTable where PID=A.PID and case when @Termid='%' then '1' else Termid end = case when @Termid='%' then '1' else a.Termid end
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,0,''),'') as [OtherQualifications]
FROM [FAIRV3].[dbo].FACTTable a
where a.Termid like @Termid
and a.CampusClass like @Campus
and a.CollegeClass like @College
and a.ColldeptClass like @Colldept
and isnull(FlagApprovedException,'') like @flag3
and FlagIEApproved like @flag4
一个查询中有多个Stuff,这会导致查询响应时间过长。在某些情况下,返回400行需要10分钟以上。我将提供更多信息,例如表格中的数据目前是什么样的,以及任何人需要的所有类型的东西。