位置: 编程技术 - 正文

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

  • 单位的车辆车船税怎么交
  • 应纳税所得额是利润总额吗
  • 收到以前年度退所得税分录
  • 销售商品收到转账支票计入什么科目
  • 收到上月保险赔偿款分录
  • 小规模纳税人缴纳上月应交增值税
  • 劳务费属于印花税范围吗
  • 代订机票被骗可以追回吗
  • 事业单位私车公用条例
  • 付款单位与开票单位不一致如何做账?
  • 税务注销交什么税
  • 转让旧房增值税计税依据
  • 资产类低值易耗品
  • 投标保证金支付时间
  • 固定资产之前没提折旧,数额交大
  • 建筑施工企业清欠管理办法
  • 促销服务费经营范围怎么写
  • 生产企业出口货物收不到款怎么处理
  • 房产报废手续
  • 承兑汇票章不清晰 情况说明
  • 费用与支出的区别是什么
  • 出售长期股权投资的相关税费
  • 税局代开专票会计分录怎么写?
  • 其他权益工具投资公允价值变动怎么计算
  • 光驱弹不出来灯也不亮
  • 为员工购买的团员保险
  • 无法安装字体,显示字体无效win10
  • 要看网怎么找
  • 桌面右键个性化没有关联的程序
  • 第一启动盘设置为u盘
  • 苹果电脑 浏览器
  • win11镜像文件怎么复制到系统U盘
  • 外购货物用于职工奖励
  • 股权激励的账务处理
  • 公司法人变更后银行账户怎么变更
  • php处理数组的函数
  • 资产负债表中各项目的期末数应根据各账户
  • php备份mysql数据库
  • transform模块
  • 其他应付款转入管理费用
  • Stable Diffusion - API和微服务开发
  • 应收应付对冲的会计分录
  • 在网上怎么样查个人征信
  • 加计抵减会计分录其他收益
  • 财务会计制度及核算软件备案有效期
  • 房产税从何时计算缴纳
  • sql server 实现数据值加一减一
  • 固定资产增加
  • 公司注销前怎么平账需要提前多久
  • 清算所得税计税基础
  • 印花税根据不同的税目,分别采用
  • 质量不合格怎么说
  • 资本化支出计入什么科目
  • 收到定期存款怎么做分录
  • 小企业研发费用放在哪个科目
  • 印花税怎么申报缴纳
  • 展位费按多少税率
  • 结转已销商品的销售成本分录
  • 如何跨数据库查询
  • mysql随机选择
  • c3p0连接池提供了哪些方式来配置连接池的参数
  • mysql怎么修改列的类型
  • 服务器文件夹共享分组
  • win8无法识别的usb设备 怎么解决
  • auepuc.exe是什么软件
  • 魔方win10
  • win8无法连接到internet
  • win8.1 win7
  • 微软账号重新登录
  • win8.1中文版
  • win8.1拨号上网
  • Tips(1)glewExperimental
  • node.js基本语法
  • linux7 snmp
  • 浅析我国国防现状
  • 欢迎使用微信支付
  • 湖南省电子国税
  • 淄博新农合怎么网上缴费
  • 辽宁社保缴费公众号
  • 小规模企业降税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设