一句是不行的,除非用自定义函数就可以只要一句。
create function fmerg()
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+字段 from 表A
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
insert 另一个表 select dbo.fmerg() from 表A
create function fmerg()
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+字段 from 表A
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
insert 另一个表 select dbo.fmerg() from 表A
@str=''
select @str=@str+' '+某个字段 from 表1
insert into 表2(字段) values(@str)
Create function getstr(@id Nchar(100))
returns Nvarchar(4000)
as
begin
declare @str Nvarchar(4000),@分隔符 Nvarchar(10)
set @分隔符=N','
set @str=N''
select @str=@str+rtrim(Col)+@分隔符 from 表名
--------------------------------^^^^要相加的字段名
where 相加条件字段=@id
set @str=left(@str,len(@str)-1)落 ---却除最后一个分隔符
return @str
end
GO2,调用
select 条件字段,dbo.getstr(条件字段) from 表名 group by 条件字段
create function GetAllFields()
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+ isnull(cast(字段 as varchar(100)),'') from 表1
return(@str)
End
go2:调用
insert 表2(你要合并的字段) select dbo.GetAllFields() from 表2