位置: 编程技术 - 正文

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

  • 车辆消费税征税范围是什么
  • 固定资产处置收入怎么报税
  • 收到失业金返还什么意思
  • 企业购入固定资产在每期末应使用公允价值法进行计量
  • 应付票据是资产吗
  • 非盈利组织是什么
  • 深圳重工业企业有哪些
  • 公司账上的应付账款是指
  • 4s店改装车后卖车合法吗
  • 工厂采购原材料销售给外贸公司
  • 发票上传多久可以验旧
  • 国税能代开什么费用的发票?
  • 小规模纳税人未建账处罚
  • 小微企业增值税收优惠政策
  • 缴纳印花税税会计分录怎么做
  • 简易征收红字发票怎么在报表中表现
  • 其他业务收入和其他业务成本
  • 小微企业免税销售额一栏怎么填
  • 税控盘服务费抵减有效期几年
  • 工会经费80%
  • 怎么查询企业的注册资金
  • 劳务费单位没有代扣怎么办
  • 怎么恢复系统win10
  • win10怎么看电脑名称
  • 如何绕开压缩包密码
  • mac双系统删除window后怎么重新恢复
  • PHP:mb_ereg_search_pos()的用法_mbstring函数
  • 心绞痛的早期症状表现有哪些
  • 其他应付款不用付了怎么处理
  • 以固定资产换入无形资产
  • 消费税的计税方法有
  • 管理费用包括哪些明细科目
  • 橡皮树怎么养护
  • 实用工具书推荐
  • 4s店试驾车出售收益为什么不能做主营业务收入
  • 花生油加工厂的手续好办吗
  • 企业规定
  • 或有资产确认的前提为什么是
  • 坏账准备计提范围包括
  • 共同开发产品
  • 影响年度损益的金额怎么算
  • 投资性房地产公允价值模式账务处理
  • 销售方销售返利单独开具
  • 如何处理固定资产报废
  • 认缴制不会带来的账务问题
  • 被收购企业账务处理流程
  • 工会经费是什么凭证
  • 营业收入包括哪些内容?
  • mysql中分组
  • Win7 64位旗舰版系统中实现照片的批量重命名
  • git不小心改了master
  • mac怎么使用自动切换输入法
  • linux系统的电脑如何共享
  • solaris教程
  • u盘装系统步骤delt进入界面怎么选择
  • GrooveMonitor.exe是什么进程?GrooveMonitor.exe可以禁用卸载吗?
  • centos sudoers
  • centos7.5设置静态ip
  • 如何在vmware虚拟机中安装macos11.0
  • win7系统出现蓝屏怎么进去桌面
  • Win10年度升级版Redstone来了:更加个人化的计算体验
  • 侠客驱动是什么意思
  • cocos2dx camera
  • cocos2d android 游戏开发学习——CCAction(二)
  • 每天学一个成语
  • js如何获取url
  • Node.js中的construct构造函数
  • Node.js中的什么模块是用于处理文件和目录的
  • 获取磁盘失败代码0-0
  • unity区域光怎么做
  • unity3d物体旋转
  • Centos6.8下Node.js安装教程
  • android的基础知识
  • 安卓中的多线程
  • 湖北省税务系统欠税管理工作指南
  • 国际税务局邮箱是多少
  • 特服号码
  • 季度申报表如何填写
  • 上海增值税发票抵扣
  • 2021年福利彩票47期
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设