使用分隔符拆分表中同一列中存在的值

时间:2013-06-24 09:49:06

标签: sql sql-server-2008 tsql

我有一张如下表所示的表格:

                     TBLContact
-------------------------------------------------
BranchId  DepartmentId  DepartmentName   Phone No
-------------------------------------------------
 BID100    DTID001       Mechanical       123654

 BID100    DTID001       Mechanical       887744

 BID101    DTID002       Automobile       045167

 BID101    DTID002       Automobile       674632

我必须以一种方式在存储过程中构造一个查询,在传递'BranchId'作为查询的参数时,它将返回单个行中相应的'BranchId'的Department Phone No'逗号,虽然'Phone No'存在于特定'BranchId'的两行中。 例如;考虑将值'BID100'作为参数传递给查询/存储过程,查询将返回如下结果:

BranchId DepartmentId  DepartmentName   PhoneNo
---------------------------------------------------
 BID100    DT001        Mechanical    123654,887744

PS:我正在使用SQL Server 2008。

2 个答案:

答案 0 :(得分:0)

此处通过MS SQL Server中的XML data()命令显示的示例是:

select PhoneNo + ', ' as 'data()' 

from TBLContact where branch_id = BID100

for xml path('')

答案 1 :(得分:0)

使用此脚本作为基础

declare @PhoneNo VARCHAR(8000) 

select @PhoneNo = COALESCE(@PhoneNo+ ', ', '') + PhoneNo
from table
where BranchId = 'BID100'

select top 1  BranchId,  DepartmentId,  DepartmentName, @PhoneNo
from table
where BranchId = 'BID100'