SQL相同数据的累连接

来源:百度知道 编辑:UC知道 时间:2024/07/05 20:40:20
字段1-------字段2
5--------纸杯15.00000000*21.0000(打)
5--------茶杯2.00000000*21.0000(箱)
5--------钢笔8.00000000*21.0000(包)
所有字段1为5的显示为一条记录:
5--------纸杯15.00000000*21.0000(打)/茶杯2.00000000*21.0000(箱)/钢笔8.00000000*21.0000(包)
注意中间用"/"连接

使用自定议函数实现:

先建立一个取某列值的函数(getcol):输入字段1,返回该号对应的字段2累加结果。

再执行这个语句即可:
select 字段1,字段2=dbo.getcol(字段1) from
(select distinct 字段1 from 表名) a

表结构:
CREATE TABLE 表名(字段1 int,字段2 varchar(50))

函数脚本(如果表结构一致,直接复制到查询分析器即可执行):
alter FUNCTION getcol
(@spbh int)
RETURNS varchar(8000)
AS
BEGIN
declare @f1 varchar(100),@result varchar(1000),@deli char(1)
set @deli='/'
set @result=''

DECLARE ddcursor CURSOR for select 字段2 from 表名 where 字段1=@spbh
open ddcursor
fetch next from ddcursor into @f1
while @@fetch_status!=-1
begin
set @result=@result+@deli+isnull(@f1,'')
fetch next from ddcursor into @f1
end
close ddcursor
deallocate ddcursor
set @result=substring(@result,2,1000)

return (@result)
end

GO
这么复杂的题目,
至少要加100分啊