日期:2014-05-18 浏览次数:20597 次
--生成测试数据 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
------解决方案--------------------
刚写了一个.
http://topic.csdn.net/u/20071016/14/9399186c-b0ce-41eb-b5b4-c06b0d2690cb.html
------解决方案--------------------
create table 表(a varchar(10),b varchar(10),c varchar(10)) insert into 表 select '1','1','2' insert into 表 select '1','3','2' insert into 表 select '1','2','3' insert into 表 select '1','3','1' create function ooo(@a varchar(10),@c varchar(10)) returns varchar(100) as begin declare @sql varchar(100) select @sql=isnull(@sql+',','')+b from 表 where a=@a and c=@c return @sql end select distinct a,dbo.ooo(a,c) as b,c from 表