位置: 编程技术 - 正文

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批处理)

  • 长期待摊费用一般指什么
  • 增值税专用发票和普通发票的区别
  • 收取子公司管理费,开具什么发票
  • 生产用天然气如何入账
  • 小规模缴纳增值税税控系统可以抵扣么
  • 子公司的实收资本合并报表怎么做
  • 小规模纳税人购置税控设备
  • 事业单位之间调动需要多久
  • 员工报销增值税
  • 单位表彰性奖金是什么
  • 房租有进项发票能抵扣吗
  • 旅游业差额开票的票据可以累计一季度吗
  • 未认证发票先入账可以吗
  • 单位老房子拆一补一,而外的面积开发商怎么算价格
  • 出口退税未收汇已申报
  • 税后工资反推税前工资计算方法
  • 管理费用纳税调增账务处理
  • 供暖税收分类编码是多少
  • 定额发票是啥
  • 进料加工贸易是什么意思
  • 建安类增值税专用发票什么时候改的
  • 企业交残疾人基金会计分录怎么做
  • 半年报利润分配是否需要审计?
  • 闲置资金购买理财产品
  • 小规模纳税企业所得税优惠政策
  • 公司增加注册资金需要实缴吗
  • 减免增值税计入什么科目
  • 土地出让金土地使用税
  • 迷迭香的养殖方法
  • kpk是什么文件
  • 长期股权投资初始投资成本和入账价值
  • 外商投资企业采用交易发生日的即期汇率
  • php7.0新特性
  • php如何创建文件
  • 我国消费税的特点
  • 抵扣认证发票统计确认后可以退回吗?
  • node实战
  • 快递行业规矩
  • win11系统中怎样调整office底色
  • 微软 new bing 广告收入
  • 手撕视频教程全集
  • 控制器eabs
  • 简单易学的前端框架
  • 企业研发费用加计扣除比例
  • 经销商自用车是指什么
  • 补交上年度的企业所得税税款计入什么科目
  • mysql需要转义的特殊字符
  • 以房租入股公司怎么交税
  • microsoft SQL server 2008有什么用
  • 价外费用含不含税
  • 区分好坏
  • a公司持有b公司
  • 软件产品销售合同范本
  • 增值税减免附加税用计提吗
  • 新冠肺炎疫情相关的公共政策
  • 出售短期债券投资发生的净损失计入哪里
  • mysql数据存在内存还是硬盘
  • sqlserver附加数据库时出错,请单击消息中的超链接
  • mysql登陆error2002
  • sqlserver数据库版本号怎么查
  • Centos下Mysql安装图文教程
  • windows server vista
  • watchdog. sys
  • iexploresrv.exe
  • win10打
  • win7系统两台电脑共享
  • windows8.1控制面板
  • 学习ExtJS fit布局使用说明
  • 前端html中怎么让文字左移
  • 可以自己做手写的软件
  • perl $?
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • 远程批量管理windows
  • JavaScript html5 canvas绘制时钟效果
  • 经常用到的图像格式有
  • android之startActivityForResult的使用
  • js写一个类
  • 税务局投诉怎么投诉
  • 税务申报作废后无法申报
  • 内蒙古国地税网上办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设