字符串+ 聚合函数? 帮忙写个SQL语句,或者给予一个解决方法,

qvyyy 2007-06-11 01:29:18
存在一个表
表名:t_example
字段:meetingid, joiner
类型:varchar(10), varchar(10)
数据:1000 李梅
1000 王俊
1000 张风
1001 哗啦啦
1001 王俊
想要的输出结果是:
1000 李梅王俊张风
1001 哗啦啦王俊
这样子最好了:
1000 李梅,王俊,张风
1001 哗啦啦,王俊

应该怎么做呢??
...全文
224 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qvyyy 2007-06-11
  • 打赏
  • 举报
回复
谢谢各位
OracleRoob 2007-06-11
  • 打赏
  • 举报
回复

create table t(meetingid int,joiner varchar(100))


insert into T select 1000,'李梅'
insert into T select 1000,'王俊'
insert into T select 1000,'张风'
insert into T select 1001,'哗啦啦'
insert into T select 1001,'王俊'

select * from T

go
--写一个聚合函数:
create function dbo.fn_Merge(@id int)
returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+','+joiner from T where meetingid=@id
return stuff(@r,1,1,'')
end
go

-- 调用函数
select meetingid, dbo.fn_Merge(meetingid) as joiner from T group by meetingid

go

drop function fn_Merge


drop table T
OracleRoob 2007-06-11
  • 打赏
  • 举报
回复

create table t(meetingid int,joiner varchar(100))


insert into T select 1000,'李梅'
insert into T select 1000,'王俊'
insert into T select 1000,'张风'
insert into T select 1001,'哗啦啦'
insert into T select 1001,'王俊'

select * from T

go
--写一个聚合函数:
create function dbo.fn_Merge(@id int)
returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+';'+joiner from T where meetingid=@id
return stuff(@r,1,1,'')
end
go

-- 调用函数
select meetingid, dbo.fn_Merge(meetingid) as joiner from T group by meetingid

go

drop function fn_Merge


drop table T
bill024 2007-06-11
  • 打赏
  • 举报
回复
create table t_example(meetingid varchar(10),joiner varchar(10))
insert t_example select '1000','李梅'
union all select '1000','王俊'
union all select '1000','张风'
union all select '1001','哗啦啦'
union all select '1001','王俊'

--写一个聚合函数:
create function dbo.fn_Merge(@meetingid varchar(1000))
returns varchar(8000)
as
begin
declare @name varchar(8000)
set @name=''
select @name=@name+','+joiner from t_example where meetingid=@meetingid
return stuff(@name,1,1,'')
end
go

-- 调用函数
select meetingid, dbo.fn_Merge(meetingid) from t_example group by meetingid
肥胖的柠檬 2007-06-11
  • 打赏
  • 举报
回复
declare function fun_test(@cid varchar(2000))
returns varchar(2000)
as
begin
declare @chr varchar(2000)
set @chr=''
select @chr=@chr+joiner+',' from 表 where meetingid=@cid
return @chr
end

select distinct meetingid,dbo.fun_test(meetingid) from 表
qvyyy 2007-06-11
  • 打赏
  • 举报
回复
什么样子的函数?
肥胖的柠檬 2007-06-11
  • 打赏
  • 举报
回复
写一个函数

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧