标题:按某字段合并字符串之一(简单合并)

描述:将如下形式的数据按id字段合并value字段。
id value
----- ------
1 aa
1 bb
2 aaa
2 bbb
2 ccc
需要得到结果:
id value
------ -----------
1 aa,bb
2 aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加)
1、sql2000中只能用自定义的函数解决
create table tb(id int, value varchar(10)) insert into tb values(1, 'aa') insert into tb values(1, 'bb') insert into tb values(2, 'aaa') insert into tb values(2, 'bbb') insert into tb values(2,'ccc') go create function dbo.f_str(@id int) returns varchar(100) as begin declare @str varchar(1000) set @str='' select @str=@str+''+cast(value as varchar) from tb where id = @id set @str=right(@str , len(@str) - 1) return @str end go --调用函数 select id , value = dbo.f_str(id) from tb group by id drop function dbo.f_str drop table tb
2、sql2005中的方法
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
select id, [value] = stuff((select ',' + [value] from tb t where id = tb.id
for xml path('')) , 1 , 1 , '')from tb group by id
drop table tb
3、使用游标合并数据
create table tb(id int, value varchar(10)) insert into tb values(1, 'aa') insert into tb values(1, 'bb') insert into tb values(2, 'aaa') insert into tb values(2, 'bbb') insert into tb values(2, 'ccc') go declare @t table(id int,value varchar(100)) --定义结果集表变量 --定义游标并进行合并处理 declare my_cursor cursor local for select id , value from tb declare @id_old int , @id int , @value varchar(10) , @s varchar(100) open my_cursor fetch my_cursor into @id , @value select @id_old = @id , @s=''while @@FETCH_STATUS = 0 begin if @id = @id_old select @s = @s + ',' + cast(@value as varchar) else begin insert @t values(@id_old , stuff(@s,1,1,'')) select @s = ',' + cast(@value as varchar) , @id_old = @id end fetch my_cursor into @id , @value END insert @t values(@id_old , stuff(@s,1,1,'')) close my_cursor deallocate my_cursor select * from @t drop table tb
以上就是关于分组字符合并SQL语句的介绍。希望对大家有所帮助。
# 字符合并
# mysql单字段多值分割和合并的处理方法
# Mysql合并结果接横向拼接字段的实现步骤
# MySQL Union合并查询数据及表别名、字段别名用法分析
# mysql 列转行
# 合并字段的方法(必看)
# sql server 中合并某个字段值的实例
# mysql中合并两个字段的方法分享
# SQL函数将某个字段合并在一起的操作
# 自定义
# 只能用
# create
# table
# sql
# class
# brush
# insert
# values
# function
# tb
# int
# varchar
# aa
# bb
# aaa
# br
# id
# nbsp
# strong
相关文章:
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
微信h5制作网站有哪些,免费微信H5页面制作工具?
香港服务器租用费用高吗?如何避免常见误区?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
行程制作网站有哪些,第三方机票电子行程单怎么开?
IOS倒计时设置UIButton标题title的抖动问题
如何注册花生壳免费域名并搭建个人网站?
内网网站制作软件,内网的网站如何发布到外网?
如何通过可视化优化提升建站效果?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
兔展官网 在线制作,怎样制作微信请帖?
Thinkphp 中 distinct 的用法解析
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
常州企业网站制作公司,全国继续教育网怎么登录?
如何通过PHP快速构建高效问答网站功能?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
C#如何在一个XML文件中查找并替换文本内容
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
网页设计网站制作软件,microsoft office哪个可以创建网页?
网站制作企业,网站的banner和导航栏是指什么?
建站之星导航如何优化提升用户体验?
定制建站哪家更专业可靠?推荐榜单揭晓
如何通过多用户协作模板快速搭建高效企业网站?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
如何快速建站并高效导出源代码?
青岛网站建设如何选择本地服务器?
如何快速查询网站的真实建站时间?
怎么将XML数据可视化 D3.js加载XML
详解jQuery中基本的动画方法
制作销售网站教学视频,销售网站有哪些?
C++如何使用std::optional?(处理可选值)
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
如何通过老薛主机一键快速建站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何自定义建站之星模板颜色并下载新样式?
已有域名如何快速搭建专属网站?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何通过云梦建站系统实现SEO快速优化?
香港服务器WordPress建站指南:SEO优化与高效部署策略
个人网站制作流程图片大全,个人网站如何注销?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
北京网站制作的公司有哪些,北京白云观官方网站?
如何快速搭建安全的FTP站点?
seo网站制作优化,网站SEO优化步骤有哪些?
高端建站如何打造兼具美学与转化的品牌官网?
太原网站制作公司有哪些,网约车营运证查询官网?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
*请认真填写需求信息,我们会在24小时内与您取得联系。