一个查询语句优化问题。
似如题所说,前期通过多个表联合查询得到结果,但是结果中有重复的数据,例如
ID NAME C_ID
1 A 1.0
2 B 1.1
3 C 1.2
4 D 1.2
但是我想要得到的结果为
ID NAME C_ID
1 A 1.0
2 B 1.1
3 C+D 1.2
这个C_ID 还有很多种重复数据在里我就不一一写出了。
请各位大侠帮助解决一下
------解决方案--------------------create function dbo.fn_Merge(@C_ID decimal(5,1))
returns varchar(8000)
as
begin
declare @name varchar(8000)
set @name= ' '
select @name=@name+ '+ '+NAME from test where C_ID=@C_ID
return stuff(@name,1,1, ' ')
end
go
create table test(ID int,NAME varchar(10),C_ID decimal(5,1))
insert test select 1, 'A ',1.0
union all select 2, 'B ',1.1
union all select 3, 'C ',1.2
union all select 4, 'D ',1.2
select ID=min(ID),NAME,C_ID from
(
select ID,NAME=dbo.fn_Merge(C_ID),C_ID from test
)a
group by NAME,C_ID
------解决方案--------------------create function dbo.fn_Merge(@C_ID decimal(5,1))
改为:
create function dbo.fn_Merge(@C_ID varchar(20))