求一大数据量的sql函数

t_kong 发布于 2014/02/13 11:50
阅读 70
收藏 1

在网上看到这个教程:

将多行合并为一行。

id    value
—– ——
1     aa
1     bb
2     aaa
2     bbb
2     ccc
需要得到结果:
id     value
—— ———–
1      aa,bb
2      aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加)

定义表:
create table tb(id int, value varchar(10))
insert into tb values(1, ‘aa’)
insert into tb values(1, ‘bb’)
insert into tb values(2, ‘aaa’)
insert into tb values(2, ‘bbb’)
insert into tb values(2, ‘ccc’)
go
一、sql2000中要用自定义的函数解决
create function dbo.f_str(@id int) returns varchar(100)
as
begin
    declare @str varchar(1000)
    set @str = ”
    select @str = @str + ‘,’ + cast(value as varchar) from tb where id = @id
    set @str = right(@str , len(@str) – 1)
    return @str
end
go
–调用函数
select id , value = dbo.f_str(id) from tb group by id
–drop function dbo.f_str
–drop table tb

想问下value的数据量太大了。起码24000个字节,遇到这个问题,函数应该如何修改。

加载中
返回顶部
顶部