--1.创建一个合并的函数
create function fmerg(@id varchar(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+运动项目 from 表A where 姓名=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct 姓名,dbo.fmerg(姓名) from 表A
create function fmerg(@id varchar(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+运动项目 from 表A where 姓名=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct 姓名,dbo.fmerg(姓名) from 表A
[交流]行列转换
--1.创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+content from Mytable where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct id,dbo.fmerg(id) from Mytable
set @s=''
select @s=@s+','+字段2 from 表 where 字段3='张三'
exec('select ''张三''+@s)
--或用下面的方法,临时表处理:select 字段2,字段3,aa=cast('' as varchar(8000)) into #t from tTest order by 字段3,字段2declare @a varchar(10),@b varchar(8000)
update #t set @b=case @a when 字段3 then @b+字段2 else 字段2 end
,aa=@b,@a=字段3 select 字段3,fBookName=max(aa) from #t group by 字段3
drop table #t