假设如下表:
id aa
----------- ----
1 a
1 b
1 c
2 d
2 e
2 f
id aa
----------- ----
1 a
1 b
1 c
2 d
2 e
2 f
写一条语句得到如下的结果
id aa
----------- ----
1 a,b,c,
2 d,e,f,
----------- ----
1 a,b,c,
2 d,e,f,
实际上就是按ID汇总,然后对于非汇总的aa字段,以字符串相加的方式实现,可惜的是,标准函数中,没有以上的实现功能。
问人无数,翻烂SQL在线帮助,总算得到一个变通的解法,就是利用自定义函数,如下:
创建一个自定义函数
create function fn_test
(
@id int
)
returns varchar(1024)
as
创建一个自定义函数
create function fn_test
(
@id int
)
returns varchar(1024)
as
begin
declare @ddd varchar(1024)
select @ddd = ''
declare @ddd varchar(1024)
select @ddd = ''
select @ddd = @ddd + aa + ','
from tmp_detail
where id = @id
from tmp_detail
where id = @id
return @ddd
end
go
go
然后利用该函数写SQL语句
select id, dbo.fn_test(id) from tmp_detail
group by id
select id, dbo.fn_test(id) from tmp_detail
group by id
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步