参考:--生成测试数据
create table 表(部门 int,人员 varchar(20))
insert into 表 select 1,'张三'
insert into 表 select 1,'李四'
insert into 表 select 1,'王五'
insert into 表 select 2,'赵六'
insert into 表 select 2,'邓七'
insert into 表 select 2,'刘八'
go--创建用户定义函数
create function f_str(@department int)
returns varchar(8000)
as
begin
    declare @ret varchar(8000)
    set @ret = ''
    select @ret = @ret+','+人员 from 表 where 部门 = @department
    set @ret = stuff(@ret,1,1,'')
    return @ret 
end
go
--执行
select 部门,人员=dbo.f_str(部门) from 表 group by 部门 order by 部门
go--输出结果
/*
部门  人员
----  --------------
1     张三,李四,王五
2     赵六,邓七,刘八
*/
--删除测试数据
drop function f_str
drop table 表
go

解决方案 »

  1.   

    纯属接分~~~--测试数据
    create table csdn(id int,txt varchar(10))
    insert csdn
    select 1,'a' union all
    select 1,'b' union all
    select 1,'c' union all
    select 2,'aa' union all
    select 2,'bb' union all
    select 2,'cc' union all
    select 3,'aaa' union all
    select 3,'bbb'
    select * from csdn
    gocreate function Gettxt(@id int)
    returns varchar(8000)
    as
    begin
        declare @s varchar(8000)
    set @s=''
    select @s=@s +',' +txt from csdn where id=@id
    --return @s
    return  stuff(@s,1,1,'')
    end
    goselect id,dbo.Gettxt(id) txt from csdn group by id
    godrop function Gettxt
    drop table csdn
    go
      

  2.   

    我用的是Access数据库,上面用到了存储过程好像在Access中很难实现。