将多条记录分隔为一个字符串

 

/*
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

posted @ 2006-10-18 10:28  torome  阅读(207)  评论(0)    收藏  举报