2010-01-14 3 views
0

j'utilisais Microsoft SQL Server 2005 et a été en mesure de concaténer des valeurs de ligne en fonction de la requête suivante:

Concaténation Row Valeurs

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 

Mais cela ne fonctionne pas dans Microsoft Server 2000. Il me donne une erreur près du mot-clé for. Quelqu'un peut-il m'aider à concaténer les valeurs de ligne dans Microsoft Server 2000?

Répondre

2

Ceci est une technique qui devrait fonctionner pour vous. Vous pouvez exécuter ce dans une instruction de lot si vous le souhaitez:

DECLARE @EmployeeList varchar(100) 

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

SELECT @EmployeeList 

Pour plus d'informations, consultez Using COALESCE to Build Comma-Delimited String.

+0

homme génial. Merci – reggie

1
FOR XML PATH 

ne sont pas disponibles dans SQL Server 2000.

Cet article traite de différentes approché pour concaténer les valeurs de ligne: Concatenating Row Values in Transact-SQL

+1

réellement - il ** EST ** disponible dans SQL Server 2005 et plus - mais c'est ** NON ** disponible dans SQL Server ** 2000 ** –

+0

quel article parlez-vous – reggie

+0

Réponse éditée. Lien ajouté. – Giorgi