2010-01-14 3 views
0

Я использую 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

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

DECLARE @EmployeeList varchar(100) 

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

SELECT @EmployeeList 

Для получения дополнительной информации см Using COALESCE to Build Comma-Delimited String.

+0

удивительный человек. благодаря – reggie

1
FOR XML PATH 

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

В данной статье рассматриваются различные подходили к конкатенации значений строк: Concatenating Row Values in Transact-SQL

+1

Фактически - это ** IS ** доступно в SQL Server 2005 и выше - но это ** НЕ ** доступно в SQL Server ** 2000 ** –

+0

, о какой статье вы говорите о – reggie

+0

Ответ отредактирован. Ссылка добавлена. – Giorgi

Смежные вопросы