Я делаю подстроку, чтобы получить все адреса электронной почты, соответствующие определенному коду расходов.Поскольку я заранее не знаю, какой будет максимальная длина, я всегда использую слишком большое значение int, и мне интересно, повлияет ли это на производительность запроса.
Мне нужно получить длинустроки с самыми длинными данными EmployeeEmails и установите @MAXINT с ним
DECLARE @MAXINT INT = 2147483646
SELECT
JOB.JOBNUMBER AS ExpenseCode,
substring(
(
Select ',' + LOWER(EMP.ELECTRONICMAILADDRESS) AS [text()]
From dbo.EMPLOYEE EMP
INNER JOIN ITEM on ITEM.ACCESSLEVELNAME = JOB.ACCESSLEVELNAME
Where LOWER(EMP.NAME2 + '.' + EMP.NAME3) Collate SQL_Latin1_General_CP1253_CI_AI = ITEM.NAMEOFUSER
AND GETDATE() < CASE WHEN EMP.DATEENDEMPLOYMENT = '' THEN '2099-01-01' ELSE EMP.DATEENDEMPLOYMENT END
ORDER BY EMP.ROWID
For XML PATH ('')
), 2, @MAXINT) EmployeeEmails
FROM JOB
ORDER BY JOB.JOBNUMBER