Объединение значений строк - PullRequest
0 голосов
/ 14 января 2010

Я использовал Microsoft SQL Server 2005 и смог объединить значения строк на основе следующего запроса:

SELECT e1.EMP_ID,
( SELECT cast(Sector_ID as varchar(10)) + ';'
FROM Employee_Sector_relationship e2
WHERE e2.Emp_ID = e1.Emp_ID
ORDER BY Sector_ID
FOR XML PATH('') ) AS Sectors
FROM Employee_Sector_Relationship e1
GROUP BY Emp_ID

Но это не работает в Microsoft Server 2000. Это выдает ошибку рядом с ключевым словом for. Может кто-нибудь помочь мне объединить значения строк в Microsoft Server 2000?

Ответы [ 2 ]

2 голосов
/ 14 января 2010

Это техника, которая должна работать для вас. Вы можете выполнить это в одном пакетном операторе, если хотите:

DECLARE @EmployeeList varchar(100)

SELECT @EmployeeList = COALESCE(@EmployeeList + ', ', '') + 
   CAST(Emp_UniqueID AS varchar(5))
FROM SalesCallsEmployees
WHERE SalCal_UniqueID = 1

SELECT @EmployeeList

Для получения дополнительной информации см. Использование COALESCE для создания строки с разделителями-запятыми .

1 голос
/ 14 января 2010
FOR XML PATH

недоступно в SQL Server 2000.

В этой статье рассматриваются различные подходы для объединения значений строк: Объединение значений строк в Transact-SQL

...