简单不简单,想吧公司的的员工做为一个字段列出来,用逗号格开,怎么写?
我想吧公司的的员工做为一个字段列出来,用逗号格开,怎么写?
结果该是
公司名称 员工姓名
a公司 aaa,bbb,ccc
D公司 ddd,eee,ff,gg
问题点数:60、回复次数:4Top
1 楼pengdali()回复于 2003-11-03 19:36:20 得分 20
create function getstr(@content char(20))
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+员工姓名 from 公司表 where 公司名称=@公司名称
set @str=right(@str,len(@str)-1)
return @str
end
go
语句:
select distinct 公司名称,dbo.getstr(公司名称) 员工姓名 from 公司表Top
2 楼pengdali()回复于 2003-11-03 19:37:08 得分 20
create function getstr(@公司名称 varchar(20))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+员工姓名 from 公司表 where 公司名称=@公司名称
set @str=right(@str,len(@str)-1)
return @str
end
go
--调用语句:
select distinct 公司名称,dbo.getstr(公司名称) 员工姓名 from 公司表
Top
3 楼zjcxc(邹建)回复于 2003-11-03 19:54:23 得分 10
--也可以用临时表,兼容7.0
select 公司名称,员工姓名,a=cast('' as varchar(8000)) into #t from 公司表
declare @gs varchar(50),@yg varchar(8000)
update #t set @yg=case @gs when 公司名称 then @yg+员工姓名 else 员工姓名 end
,a=@yg,@gs=公司名称
select 公司名称,员工姓名=max(a) from #t group by 公司名称
Top
4 楼zjcxc(邹建)回复于 2003-11-04 08:16:08 得分 10
--少写了分隔符,改:
select 公司名称,员工姓名,a=cast('' as varchar(8000)) into #t from 公司表
declare @gs varchar(50),@yg varchar(8000)
update #t set @yg=case @gs when 公司名称 then @yg+','+员工姓名 else 员工姓名 end
,a=@yg,@gs=公司名称
select 公司名称,员工姓名=max(a) from #t group by 公司名称Top




