位置: 编程技术 - 正文

SQL 合并多行记录的方法总汇(sql合并多条记录某一个字段)

编辑:rootadmin
--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多行合并成一行 oracle,sql多行合并成一行 逗号连接,SQL 合并多行记录的相同字段值,sql语句多行合并成一行,sql多行合并成一行多列,SQL 合并多行记录的相同字段值,sql合并多行数据,内容如对您有帮助,希望把文章链接给更多的朋友!

批处理 动态sql 1.DECLARETYPEref_cursor_typeISrefCURSOR;v_mycursorref_cursor_type;TYPEid_listISTABLEOFinteger;TYPEname_listISTABLEOFvarchar2();v_tabidid_list:=id_list();v_tabnamename_list:=name_list();sql_strvarc

SQL Server 的逻辑查询处理步骤 最近我则刚刚收到了微软最有价值专家项目组寄来的该书的SQLServer英文版本-《InsideMicrosoftSQLServer:T-SQLQuerying》(

在sp_executesql中使用like字句的方法 declare@LikeSqlnvarchar();--定义一个like变量,如果是存储过程,此处可以存储过程的参数set@LikeSql=‘someword%';--把LikeSql变量赋值,可以赋值成'%xxxxxxxxxxxx%'decl

标签: sql合并多条记录某一个字段

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

上一篇:sqlserver 2000 远程连接 服务器的解决方案(sqlserver远程连接设置)

下一篇:批处理 动态sql(sqlserver批处理)

  • 更正以前年度费用账务处理
  • 增值税一般纳税人税率
  • 利润表利息费用和利息收入
  • 建账的主要流程
  • 企业所得税申报表A类
  • 什么费用可以报销工会经费
  • 消防检测需要资质吗?
  • 小企业应付职工薪酬核算内容的有
  • 企业所得税的优点有哪些
  • 股东无偿借款给公司需要交税吗
  • 剩余折旧月份
  • 1 3%增值税发票样本
  • 税前计提工资福利费用如何做会计核算?
  • 进项税申报但未抵扣
  • 企业为什么用银行承兑汇票
  • 航天信息的服务费
  • 小规模纳税人纳税申报流程
  • 确认投资收益是按照出资比例还是股权比例
  • 二手房增值营业税
  • 物业管理企业代管基金是什么
  • 企业有哪些o
  • 个税缴纳累计是每年一算吗
  • 小企业会计准则和企业会计准则的区别
  • 某产品今年进价是去年的
  • 违约金扣除吗
  • 下雨被水淹
  • 企业分立账务处理办法
  • 经营费用包括哪些科目明细
  • 信息化投入包括什么投入和什么投入
  • macbookpro常见问题
  • 对公转账需要填写开户行吗
  • 财务费用利息收入怎么结转
  • ESP32-CAM AI THINKER 引脚排列:GPIO 用法说明
  • vue的后端
  • phppdo连接数据库
  • 专票抵扣联可以盖两个章吗
  • grub-install --target
  • 固定资产到期日
  • 业务招待费可以结转以后年度扣除吗
  • 计提折旧是怎么计算的
  • 什么科目需要结转到本年利润
  • 个人生产经营所得范围
  • mysql卡住了
  • 合并报表时存货公允与账面的差额
  • 建筑施工安全费用提取标准
  • 企业年金个税怎么计算
  • 计提工资的核算流程
  • 自营工程的账务处理
  • 4s店出售试驾车的增值税是多少
  • 跨年度退货可以不退款吗
  • 注册资本和实收股本的区别
  • MySQL thread_stack连接线程的优化
  • 将u盘制作成u启动u盘启动盘
  • 如何卸载独显
  • windows Server 2008各版本区别详解
  • freebsd6.2 nginx+php+mysql+zend系统优化防止ddos攻击
  • 创建svn库
  • 上网本安装win7
  • win7自带拍照功能
  • win8系统打不开exe
  • win10周年纪念版
  • mac系统简介
  • win10怎么添加打印机
  • win7怎样解除无线连接限制
  • JavaScript数组删除元素
  • 着色器问题
  • Linux shell实现HTTP服务示例代码
  • 深入理解linux系统
  • unity3ds
  • Node.js中的construct构造函数
  • bat批处理执行cmd命令
  • js闭包作用问题解决应用
  • js 原型继承的几种方法
  • 国家税务总局全国增值税发票官网
  • 装饰装修公司需要什么
  • 党建服务中心属于哪个区
  • 领导班子和领导干部评议意见表
  • 内蒙古国家税务局网上电子税务局官网
  • 东莞国税稽查分局局长
  • 注销的卡补回来还能恢复以前的套餐吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设