0

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

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

 BID100    DTID001       Mechanical       887744

 BID101    DTID002       Automobile       045167

 BID101    DTID002       Automobile       674632

我必须以某种方式在存储过程中构建查询,以便在将“BranchId”作为参数传递给查询时,它会在用逗号分隔的单行中返回相应“BranchId”的部门电话号码,尽管对于特定的“BranchId”,“电话号码”存在于两行中。例如; 考虑将值“BID100”作为参数传递给查询/存储过程,查询将返回如下结果:

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

PS:我使用的是 SQL Server 2008。

4

2 回答 2

0

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

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

from TBLContact where branch_id = BID100

for xml path('')
于 2013-06-24T10:16:29.063 回答
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'
于 2013-06-24T11:10:35.207 回答