连接行值

时间:2010-01-14 14:56:42

标签: sql sql-server-2000

我使用的是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 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

FOR XML PATH

在sql server 2000中不可用。

本文讨论了连接行值的不同方法:Concatenating Row Values in Transact-SQL