Sql 使用分隔符拆分表中同一列中的值
我有一个如下所示的表格:Sql 使用分隔符拆分表中同一列中的值,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我有一个如下所示的表格: TBLContact ------------------------------------------------- BranchId DepartmentId DepartmentName Phone No ------------------------------------------------- BID100 DTID001 Mechanical 123654 BID1
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”的两行中。
例如考虑将值“BI100”传递给查询/存储过程的参数,查询将返回如下结果:
BranchId DepartmentId DepartmentName PhoneNo
---------------------------------------------------
BID100 DT001 Mechanical 123654,887744
PS:我正在使用SQL Server 2008。在MS SQL Server中通过XML data()命令显示的示例如下:
select PhoneNo + ', ' as 'data()'
from TBLContact where branch_id = BID100
for xml path('')
使用此脚本作为基础
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'
看看答案这种类型的转换被称为轴心。