位置: 编程技术 - 正文

SQL 合并多行记录的方法总汇(sql合并多行到一列)

编辑:rootadmin
SQL中合并多行记录的方法总汇: --1. 创建表,添加测试数据 CREATE TABLE tb(id int, [value] varchar()) INSERT tb SELECT 1, 'aa' UNION ALL SELECT 1, 'bb' UNION ALL SELECT 2, 'aaa' UNION ALL SELECT 2, 'bbb' UNION ALL SELECT 2, 'ccc' --SELECT * FROM tb /**//* id value ----------- ---------- 1 aa 1 bb 2 aaa 2 bbb 2 ccc (5 row(s) affected) */ --2 在SQL只能用自定义函数实现 ----2.1 创建合并函数fn_strSum,根据id合并value值 GO CREATE FUNCTION dbo.fn_strSum(@id int) RETURNS varchar() AS BEGIN DECLARE @values varchar() SET @values = '' SELECT @values = @values + ',' + value FROM tb WHERE id=@id RETURN STUFF(@values, 1, 1, '') END GO -- 调用函数 SELECT id, VALUE = dbo.fn_strSum(id) FROM tb GROUP BY id DROP FUNCTION dbo.fn_strSum ----2.2 创建合并函数fn_strSum2,根据id合并value值 GO CREATE FUNCTION dbo.fn_strSum2(@id int) RETURNS varchar() AS BEGIN DECLARE @values varchar() SELECT @values = isnull(@values + ',', '') + value FROM tb WHERE id=@id RETURN @values END GO -- 调用函数 SELECT id, VALUE = dbo.fn_strSum2(id) FROM tb GROUP BY id DROP FUNCTION dbo.fn_strSum2 --3 在SQL/SQL中的新解法 ----3.1 使用OUTER APPLY SELECT * FROM (SELECT DISTINCT id FROM tb) A OUTER APPLY( SELECT [values]= STUFF(REPLACE(REPLACE( ( SELECT value FROM tb N WHERE id = A.id FOR XML AUTO ), '<N value="', ','), '"/>', ''), 1, 1, '') )N ----3.2 使用XML SELECT id, [values]=STUFF((SELECT ','+[value] FROM tb t WHERE id=tb.id FOR XML PATH('')), 1, 1, '') FROM tb GROUP BY id --4 删除测试表tb drop table tb /**//* id values ----------- -------------------- 1 aa,bb 2 aaa,bbb,ccc (2 row(s) affected) */

推荐整理分享SQL 合并多行记录的方法总汇(sql合并多行到一列),希望有所帮助,仅作参考,欢迎阅读内容。

SQL 合并多行记录的方法总汇(sql合并多行到一列)

文章相关热门搜索词:sql合并两行查询结果,sql怎么将多行合并为一行,sql合并多条记录某一个字段,SQL 合并多行记录的相同字段值,sql怎么将多行合并为一行,SQL 合并多行记录的相同字段值,SQL 合并多行记录的相同字段值,sql多行合并成一行多列,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL中的left join right join 以下是它们的共同点:1.关于左右表的概念。左表指的是在SQL语句中排在leftjoin左边的表,右表指的是排在leftjoin右边的表。2.在拼成的大表中,左表排在

Sql Server 数据库索引整理语句,自动整理数据库索引 在一个大型数据库中,数据的更改是非常频繁的。而建立在这些数据上的索引也是需要经常去维护的。否则这这些数据索引就起不到起应起的作用。甚

查询数据排名情况SQL 1/准备测试数据---------------------------------------------------------------------------------createtablet1(c1integer,c2integer,c3integer);insertintot1values(1,2,3)insertintot1values(1,8,4)inse

标签: sql合并多行到一列

本文链接地址:https://www.jiuchutong.com/biancheng/349102.html 转载请保留说明!

上一篇:在sp_executesql中使用like字句的方法

下一篇:SQL中的left join right join(sql中的视图提高了数据库的)

  • 怎样在电子税务局查询已开发票
  • 行政职工福利费包括哪些内容呢
  • 编制初始计量有什么要求
  • 加计抵减的税额多长时间
  • 小规模纳税人每季度报税清盘
  • 注册公司认缴资本不缴可以吗
  • 自建办公楼销售要交土地增值税吗
  • 社保扣款上月没扣本月如何做会计处理?
  • 怎么认证财付通
  • 建筑业发票可以在备注里加备注么
  • 给非企业员工佣金怎么交税
  • 公司管理层的作用
  • 商铺租金收入交什么税一共多少个点
  • 没交社保能扣工伤保险吗
  • 纳税总额包括
  • 工商年检社保缴费基数按什么标准填
  • 税号里的字母要大写还是小写
  • 只转让地上的建筑怎么办
  • 广告公司需要交消费税吗
  • 公司注销有哪些原因
  • 收支利息税务如何处理
  • 企业会计准则制度
  • 增值税普通发票和专用发票有什么区别
  • 个人独资企业取得的股息红利
  • 非征期不允许上报汇总是怎么回事
  • 如何在windows11上打开蓝牙
  • 企业收到农产品普通发票
  • 收到无偿划拨的股权如何入账
  • 年底会计人员要做什么
  • 5000以下的固定资产当月一次性扣除怎么申报
  • 简易征收增值税怎么算
  • 消防费用怎么做分录
  • 进程aissca.exe
  • vue实现导出
  • php保存数据
  • 最小全画幅的数值是多少
  • 取得短期借款会计科目
  • vue中el-dialog
  • 库存现金盘亏会计分录无法查明原因
  • 企业安全生产费用不得出现赤字
  • php面向对象编程实验总结
  • 双重差分法(DID)
  • 【Netty系列・高级篇】Netty核心源码解析
  • 季度是指
  • mysql基本sql语句大全(基础用语篇)
  • sql性能优化方法
  • 预交的企业所得税需要计提吗?
  • 公司不按股权比例分红是否合法
  • 工业生产的含义
  • 劳务报酬个人所得税税率表2023
  • 在SQL Server中使用存储过程的优点包括
  • 主营业务成本工资写什么部门
  • 未分配利润可以用于企业经营吗
  • 清理固定资产是什么意思
  • 车辆购置税能抵扣企业所得税吗
  • 应收账款管理办法
  • mysql一闪而退
  • windowsxp怎么用
  • Windows Server 2008中审核和符合性
  • centos which
  • centos6.5dns配置
  • win7系统360浏览器自启动怎么关闭
  • xp桌面浏览器图标不见了
  • windows 10为什么不能关掉自动更新
  • 禁用远程桌面服务登录
  • unity怎么bake
  • jquery width
  • eclipse 代码提示指令在哪改
  • unity画面效果润色
  • JAVA的OPENGL,JOGL入门实例----碰撞移动的正方体 (配置+源代码)
  • js学习教程
  • js的prepend
  • 简单又实用的
  • jquery one
  • Android Studio:adb not responding
  • jquery操作文本可以使用什么方法
  • js的iframe
  • html做一个新闻app首页
  • 哪个机场离东莞樟木头最近
  • 山西省税务局网站系统维护公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设