位置: 编程技术 - 正文

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

  • 开增值税发票折扣折让是什么意思?
  • 金税盘老是重复更新进不去
  • 关税税收优惠记忆口诀
  • 作废的发票要拿出来吗
  • 跨越发票冲红,填了红字信息表,没有负数发票
  • 报废固定资产产生的净损益属于利得吗
  • 本币原值是什么意思
  • 企业缴纳的社保
  • 全年累积盈利交所得税吗?
  • 无形资产摊销是谨慎性原则吗
  • 消费税征收环节下划的影响
  • 财务报告分析主要内容
  • 收到对方的银行汇票算什么凭证
  • 写字楼出租可以给租户注册吗
  • 企业所得税季度预缴
  • 基金会可以投资企业吗
  • 计提无形资产累计摊销9083.33
  • 上月销售的货物会计分录
  • 购买库存商品收到发票怎样做分录
  • 增值税的销项税额和进项税额的区别
  • 利润表有盈利能力吗
  • 不同税率的发票可以合并入账吗
  • 管理员已阻止你运行此应用 win10
  • 购进材料用于在建工程进项税
  • 本年利润余额的计算公式
  • 专家评审费如何报账
  • 无形资产摊销是什么科目
  • 企业优惠促销活动中的税收筹划
  • 2020 php 薪资
  • php字符串定义
  • php中字符串函数
  • php中字符串函数
  • PHP:time_sleep_until()的用法_misc函数
  • php文件在线解密
  • 代理业务资产的意思
  • opware12.exe - opware12进程是什么文件 有什么用
  • linux抓包 udp
  • vue下载安装
  • 手把手带你做一件事
  • ntpd命令详解
  • 银行代发工资会扣个人所得税吗
  • 应收票据利息的确认
  • 标书注意事项与如何制作标书
  • 银行账号未备案怎么解决
  • 土石方工程的税费缴纳方法
  • 不是企业职工能否挂靠企业交社保
  • 研发费用计入科目
  • 商贸企业的存货周转率什么水平属于正常
  • 外贸出口备案需准备什么资料
  • 所得税汇算清缴退税会计分录怎么做
  • 资产负债表是怎么核对的
  • 商业银行提取的盈余公积可用于
  • 小规模纳税人实行简易征收办法
  • 为什么付款后没有记录
  • 权益法下股权投资包括
  • 兼营即征即退产品 增值税
  • 开办幼儿园的流程图
  • 企业收到财政补助收入账务处理
  • 企业贷款利息多少
  • 关于低值易耗品的评估说法正确的有()
  • 处置固定资产应通过什么账户核算
  • 获取sqlserver密码
  • ubuntu16.04lts
  • windows8.1分辨率
  • win10电脑无法上网
  • win7旗舰版系统激活码
  • linux常用命令find
  • 批处理有何限制
  • python 爬虫例子
  • jquery添加图片
  • python爬虫框架 path
  • unity销毁预制体
  • Unity uGui RawImage 渲染小地图
  • 安装了python2.7和3.6怎么切换版本
  • unity导出资源包
  • unity游戏加密
  • 企业所得税季报资产总额怎么填
  • 山东社保费缴纳多少
  • 食堂增值服务有哪些
  • 财税[2020]25号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设