MSSQL中的超难问题(不用存储过程实现列行转换)高分求解!!!

来源:百度知道 编辑:UC知道 时间:2024/06/15 11:52:31
举例说明:
现有表TABLE1
字段1 字段2
aaa xxx
aaa yyy
aaa zzz
bbb ppp
ccc qqq
ccc ooo
要实现下面的结果 如果使用SQL语句
字段1 字段2
aaa xxx,yyy,zzz
bbb ppp
ccc qqq,ooo

PS:存储过程实现我已经会了,请高手只用SQL语句实现,谢谢~~ 注意:环境是SQL SERVER2000
我想说明的是 , 不使用存储过程,语句越精简越好~~~ 谢谢~

--建立数据表
create table table_1 (c1 varchar(50), c2 varchar(50))
insert into table_1
select 'aaa' ,'xxx'
union select 'aaa' ,'yyy'
union select 'aaa' ,'zzz'
union select 'bbb' ,'ppp'
union select 'ccc' ,'qqq'
union select 'ccc' ,'ooo'

select * from table_1
--执行查询
declare @c1 varchar(50)
declare @c2 varchar(50)
declare @a1 varchar(50)
declare @a2 varchar(50)
DECLARE f_Cursor CURSOR FOR SELECT c1, c2 FROM table_1 order by c1,c2

create table #table (a1 varchar(50),a2 varchar(50))
OPEN f_Cursor
set @a2 = ''
FETCH NEXT FROM f_Cursor into @c1,@c2
set @a1=@c1
WHILE @@FETCH_STATUS = 0
BEGIN
if @a1=@c1
begin
if @a2=''
set @a2=@c2
else
set @a2=@a2 + ',' +@c2
end
else
begin
inse