首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么实现多行转一行

2012-02-17 
如何实现多行转一行原始数据是这样的field1field21a1b1d2c2a我要获得这样的结果field1field21a_b_d2c_a在f

如何实现多行转一行
原始数据是这样的
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

热点排行