位置: 编程技术 - 正文

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

  • 出口退免税管理工作规范2.0
  • 出资款在现金流中怎么体现
  • 航天金税的服务费如何抵扣
  • 金税盘清卡时间包括15号吗
  • 保险公司代收车船税在发票备注栏
  • 销项税额特殊销售额的处理方式
  • 合同印花税用不用计提
  • 进口缴纳的关税通过什么核算
  • 递延收益为什么要摊销
  • 公司注销固定资产怎么处理税怎么交
  • 雇主责任险税前列支
  • 外经证预缴税填不含税金额吗
  • 待处理流动资产损失属于什么科目
  • 仓库多入库怎么退
  • 有哪些固定资产可以抵税
  • 企业土地出让金怎么做账
  • 筹建期间的开办费包括哪些
  • 个人所得税哪些可以专项扣除
  • 暂估冲红的分录怎么写
  • 苹果mac有hdmi
  • windows10找不到用户和组
  • 个人所得税投诉电话是多少
  • php变量底层实现
  • windows11激活密钥多少钱
  • 发票开了对方未付款
  • php 代码生成
  • vue项目怎么运行起来
  • Thinkphp和onethink实现微信支付插件
  • 其他应付款的辅助核算项目是什么
  • 图书发票怎么报销的
  • 广告费和业务招待费扣除标准中的全年销售收入是指
  • 自营与代理
  • 记账凭证后面附发票吗
  • 离线开票限额怎么办
  • 新建利润表
  • 新注册的小公司要登记社保吗
  • 小规模纳税人0申报汇算清缴
  • wordpress怎么安装插件
  • dedecms手册
  • 百度编辑器使用方法
  • sql2014附加数据库失败
  • 收到法院款项如何做账
  • 广播影视服务税率2023
  • 开始送加盟费
  • 在建工程转入固定资产怎么做
  • 确认收入时还没交税
  • 政府返还的个税手续费会计分录
  • linux登录root用户登录
  • 收到生育津贴会计分离
  • 医院要发票
  • 吸收合并需要编制
  • 电子商务交易类应用发展现状
  • 增值税发票打印机怎么调整打印位置
  • 公司购买银行理财产品账务处理
  • 收到工程款怎么记账
  • 劳务公司 成本
  • 收到保险公司的赔款怎么做账
  • 未分配利润转增股本法人股东要交税吗
  • sqlserver 表分区工具
  • windows mysql1045
  • 怎么防止win10
  • win7系统运行慢,如何提速
  • 右键无法新建wps
  • 快速关机的快捷方式
  • mscorsvw.exe是什么进程
  • 微软补丁发布时间
  • 怎么使用linux命令
  • 打开word显示
  • linux系统怎么弄
  • Node.js connect ECONNREFUSED错误解决办法
  • android Lollipop(5.0)--touch feedback(触摸反馈)
  • javascript入门基础
  • 新手入门常用代词有哪些
  • jQuery实现table中的tr上下移动并保持序号不变的实例代码
  • js如何动态添加class
  • 公路局有钱吗
  • 微信群记账小程序
  • 深圳国税局官网
  • 税务局冬季作息时间
  • 国家税务总局组建千户集团税收风险分析专业团队
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设