假设如下表:
id          aa  
----------- ----
1           a
1           b
1           c
2           d
2           e
2           f
写一条语句得到如下的结果
id          aa  
----------- ----
1           a,b,c,
2           d,e,f,
实际上就是按ID汇总,然后对于非汇总的aa字段,以字符串相加的方式实现,可惜的是,标准函数中,没有以上的实现功能。
问人无数,翻烂SQL在线帮助,总算得到一个变通的解法,就是利用自定义函数,如下:
创建一个自定义函数
create function fn_test
(   
    @id        int
)
returns varchar(1024)
as
begin
    declare @ddd    varchar(1024)
    select @ddd = ''
    select @ddd = @ddd + aa + ','
    from tmp_detail
    where id = @id
    return @ddd
end
go
然后利用该函数写SQL语句
select id, dbo.fn_test(id) from tmp_detail
group by id
posted on 2006-09-01 10:07  MainIsUsed  阅读(224)  评论(0编辑  收藏  举报