34,588
社区成员
发帖
与我相关
我的任务
分享
select 行业类型,客户类型,max(客户名称)+','+min(客户名称) from 客户表 group by 行业类型,客户类型
select 行业类型,客户类型,max(客户名称)+','+min(客户名称) from 客户表 group by 客户类型,行业类型
create table 客户表
(
客户名称 varchar (20),
行业类型 varchar(20),
客户类型 varchar(20)
)
insert into 客户表 select '客户11','化工行业','大客户'
union all select '客户12','化工行业','大客户'
union all select '客户21','化工行业','小客户'
union all select '客户22','化工行业','小客户'
union all select '客户31','纺织行业','大客户'
union all select '客户32','纺织行业','大客户'
union all select '客户41','纺织行业','小客户'
union all select '客户42','纺织行业','小客户'
go
select 行业类型,客户类型,max(客户名称)+','+min(客户名称) from 客户表 group by 行业类型,客户类型
--生成测试数据
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