位置: 编程技术 - 正文

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中的视图提高了数据库的)

  • 印花税需要每月缴纳吗
  • 开的劳务费怎么做账
  • 购买办公用品属于会计对象吗
  • 公司租用其他公司车辆能报销保险费吗,发票怎么开
  • 小微企业公司章程范本
  • 网银制单了没有审核有影响吗
  • 外汇储备保值增值
  • 财务上用替票合法么
  • 酒店购买餐具会计分录
  • 超范围经营是不是就等于无证经营
  • 增值税普通电子发票可以抵税吗
  • 银行现金解款单回单怎么填
  • 无实收资本能日本投资吗
  • 调离工作岗位是什么处分
  • 一般纳税人进项税额转出会计分录
  • 三方扣款fd6
  • 一次还本付息摊余成本计算公式
  • 管理费用保险费汇算清缴
  • 小规模纳税人如何开专票
  • 遗属补助是死亡当月发放还是次月发放
  • 佣金的规定方法有哪些
  • 车辆的增值税和消费税
  • 外购的礼品送客户怎么做分录小规模
  • 代扣可以退款吗
  • 公司车辆违章怎么办
  • win10wifi老是自动断开怎么回事
  • 鸿蒙系统支持第三方相机吗
  • 电脑打开文件夹选项
  • php和数据库
  • 支付宝语音提示在哪里打开
  • 上月抵扣的发票怎么开
  • 冷漠的渡鸦们,美国阿拉斯加州 (© Brian Browitt Photo/Adobe Stock)
  • 莫尼莫克房车
  • static php作用
  • 修改命令的快捷键
  • 帝国cms建站教程
  • 工会保障工作的主要任务有哪些
  • mysql详细教程
  • mongodb4.4.2安装教程
  • python缩进有什么作用
  • 延期付款利息收入要交增值税吗
  • 以前年度的应收账款收不回来怎么办
  • 企业所得税年报更正申报怎么操作
  • 公司固定电话费用挂哪个科目
  • 企业培训费怎么入账
  • 当月进项发票忘记抵扣
  • 行政事业单位银行开户规定
  • 公司注销前如何先注销工会
  • 以前年度损益调整在利润表中怎么填
  • 销售退货成本如何计算
  • 企业跨年度支出怎么计算
  • 因产品不合格退货流程
  • 2021年异地转账还收费吗
  • 主营业务成本为什么借增贷减
  • 购买金税盘的分录
  • 招待费可以做成什么科目
  • 往来会计岗位职责怎么写
  • 委托收款的流程
  • mysql 5.7.28安装
  • aesm_service.exe是什么
  • Win7系统关闭怎么办
  • 搜狗拼音输入法xp系统
  • win8如何进行系统还原
  • mac使用命令行
  • linux用户账户管理
  • linux shell !
  • 前端获取http状态码400的返回值实例
  • SQLite -- 嵌入式关系型数据库
  • 设计一个windows
  • JavaScript驾驭网页-获取网页元素
  • lru缓存机制是什么
  • jquery移出class
  • android设计模式的应用场景
  • 安卓开发日记本
  • Python中list初始化方法示例
  • 2021税务公告
  • 个人可以到税务开物业费的
  • 陕西省附加税减免政策
  • 党建 共享
  • 保税区社会车辆能进吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设