读书人

一个查询语句优化有关问题

发布时间: 2012-02-22 19:36:54 作者: rapoo

一个查询语句优化问题。
似如题所说,前期通过多个表联合查询得到结果,但是结果中有重复的数据,例如

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))

读书人网 >SQL Server

热点推荐