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

求一存储过程:横表转竖表 ----?
西                 一区1号-102 0714061           陈亮
西                 一区1号-102 0714061           崔红伟  
西                 一区1号-102 0714061           刘伟
西                 一区1号-102 0714061           刘大伟
西                 一区A号114 0613032                     张苹
东                 一区A号128 0612061     轻灵

有表结构如上   现实现结果如下:

西     一区1号-102     0714061   陈亮   0714061     崔红伟   0714061     刘伟     0714061   刘大伟
西       一区A号114     0613032   张苹
东     一区A号128       0612061   轻灵

该如何实现?谢谢!

------解决方案--------------------
create table tb_test(a varchar(20),b varchar(20),c varchar(20))
insert tb_test select '西 一区1号-102 ', '0714061 ', '陈亮 '
union all select '西 一区1号-102 ', '0714061 ', '崔红伟 '
union all select '西 一区1号-102 ', '0714061 ', '刘伟 '
union all select '西 一区1号-102 ', '0714061 ', '刘大伟 '
union all select '西 一区A号114 ', '0613032 ', '张苹 '
union all select '东 一区A号128 ', '0612061 ', '轻灵 '
go
create function fun_test(@a varchar(20))
returns varchar(1000)
as
begin
declare @b varchar(1000)
select @b=isnull(@b+ ' ', ' ')+b+ ' '+c from tb_test where a=@a
return @b
end
go
select a,dbo.fun_test(a) from tb_test group by a