将多条记录分隔为一个字符串
/*
ID NAME VALUE
1 a 1
2 a 2
3 b 1
4 b 2
--->
ID NAME VALUE
1 a 1,2
2 b 1,2
*/
create table test (ID int,Name varchar(4),value varchar(4))
insert test
select
1,'a','1'
union all
select
2,'a','2'
union all
select
3,'b','1'
union all
select
4,'b','2'
go
--建立函数
Create Function GetName(@Name varchar(4))
Returns Nvarchar(2000)
As
Begin
Declare @S Nvarchar(2000)
Set @S=''
Select @S=@S+','+value from TEST Where Name=@Name Order By value
Return (Stuff(@S,1,1,''))
End
GO
--测试
Select min(ID)as id,name,dbo.GetName(name) As value from TEST Group By name
--删除测试环境
Drop Table TEST
Drop Function GetName
GO

浙公网安备 33010602011771号