请教一个聚合字符串拼接的问题

littleM 2006-03-18 04:26:41
某一个表T(f1 as varchar(50),f2 as varchar(50))内容如下:
A,x
B,y
A,y
A,z
希望写出一个语句实现(字段用,分隔):
A,x;y;z
B,y
即将原表按照第一列分组,将第二列的内容作字符串的拼接。
谢谢!
...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aniude 2006-03-19
  • 打赏
  • 举报
回复
MARK
SQL_study 2006-03-19
  • 打赏
  • 举报
回复
create table A
(
a varchar(10),
b varchar(10)
)

insert A select 'kai','abc'
insert A select 'kai','def'
insert A select 'kai','ghi'
insert A select 'jim','xxx'
insert A select 'tom','yyy'

create Function dbo.f_A(@col varchar(10))
returns varchar(100)
as
begin
declare @re varchar(100)
set @re=''
select @re=@re+';'+cast(b as varchar)
from A
where a=@col
return(stuff(@re,1,1,''))
end
go

select a,b=dbo.f_A(a) from a group by a
wangdehao 2006-03-18
  • 打赏
  • 举报
回复
---测试数据
create table T(
f1 varchar(50),
f2 varchar(50)
)
go
insert T select 'A','x'
union select 'A','y'
union select 'B','Y'
union select 'A','Z'
go
--合并处理函数
CREATE FUNCTION dbo.f_str(@f1 varchar(50))
RETURNS varchar(8000)
AS
BEGIN
DECLARE @re varchar(8000)
SET @re=''
SELECT @re=@re+';'+f2
FROM T
WHERE f1=@f1
RETURN(STUFF(@re,1,1,''))
END
go

---调用
select f1, f2=dbo.f_str(f1) from T group by f1

---结果
f1 f2 A x;y;Z
B Y

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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