日期:2014-05-18  浏览次数:20577 次

如何实现多行转一行
原始数据是这样的
field1         field2
1                   a
1                   b
1                   d
2                   c
2                   a


我要获得这样的结果
field1         field2
1                   a_b_d
2                   c_a
在field2里面的顺序无所谓,不重复就可以了。


请各位大大帮忙。thx

------解决方案--------------------
create function dbo.fn_Merge(@field varchar(1000))
returns varchar(8000)
as
begin
declare @name varchar(8000)
set @name= ' '
select @name=@name+ '_ '+field2 from test where field1=@field
return stuff(@name,1,1, ' ')
end
go

create table test(field1 int,field2 varchar(10))
insert test select 1, 'a '
union all select 1, 'b '
union all select 1, 'd '
union all select 2, 'c '
union all select 2, 'a '

select distinct field1,dbo.fn_Merge(field1) from test