首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多行合并解决方法

2012-02-01 
多行合并表abc112132123231如何得到结果(a,c相同,则b的值合并 类似group by a ,c但是b 不能sum)abc11,3212

多行合并


a b c
1 1 2
1 3 2
1 2 3
2 3 1

如何得到结果(a,c相同,则b的值合并 类似group by a ,c 但是b 不能sum)
a b c
1 1,3 2
1 2 3
2 3 1


谢谢!

[解决办法]
参考:

SQL code
--生成测试数据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)asbegin    declare @ret varchar(8000)    set @ret = ''    select @ret = @ret+','+人员 from 表 where 部门 = @department    set @ret = stuff(@ret,1,1,'')    return @ret endgo--执行select 部门,人员=dbo.f_str(部门) from 表 group by 部门 order by 部门go--输出结果/*部门  人员----  --------------1     张三,李四,王五2     赵六,邓七,刘八*/--删除测试数据drop function f_strdrop table 表go
[解决办法]
刚写了一个.

http://topic.csdn.net/u/20071016/14/9399186c-b0ce-41eb-b5b4-c06b0d2690cb.html
[解决办法]
SQL code
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)asbegin    declare @sql varchar(100)    select @sql=isnull(@sql+',','')+b from 表 where a=@a and c=@c    return @sqlendselect distinct a,dbo.ooo(a,c) as b,c from 表 

热点排行