位置: 编程技术 - 正文

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

  • 贷方账户日累计金额超限怎么办
  • 社保年检申报错误怎么办
  • 发票第二年是否可以作废
  • 资产负债表期初和期末的关系
  • 弱电系统多少钱
  • 台湾发票大陆能做账吗
  • 酒店应不应该为员工提供澡堂
  • 商品流通企业一般采用
  • 变更税务登记证需要提供哪些材料
  • 固定资产清理在财务报表哪里体现
  • 收到对方的银行汇票算什么凭证
  • 企业所得税利润总额和财务报表利润总额不一致
  • 小规模餐饮业会计核算
  • 业务员出差借款,用途写什么
  • 代扣代缴的增值税怎么做账
  • 核定征收分几种
  • 用钱买的代金券怎么使用
  • 货运发票与运输发票的区别
  • 增值税专用发票抵扣期限
  • 住宿费进哪个科目
  • 补缴公积金账务处理
  • 如何以快捷方式打印文件
  • 收到上级工会下拨的工会经费
  • 如何编制处置固定资产
  • 累计折旧 减少
  • kb4507449安装失败
  • 没有产权的房屋离婚怎么分配
  • 股权投资借差
  • 被雪覆盖的山峰
  • 支付工资属于费用吗
  • 与资产相关的政府补助所得税处理
  • 存货损失账务处理新规定
  • 出让土地使用权和转让土地使用权的区别
  • 什么是重大会计事务所
  • 小规模纳税人免税政策2023年
  • arc架构
  • 程序员未来会失业吗
  • 前端页面设计
  • php运算符@符号
  • php 伪造HTTP_REFERER页面URL来源的三种方法
  • ip6tables-restore命令 还原ip6tables表
  • md5 linux
  • 付临时工工资需要什么材料
  • 帝国cms怎么样
  • 小微企业买商品房怎么买
  • 暂估入账后续处理
  • 企业费用发票有哪些可以入账
  • 账面价值大于计税基础是调增还是调减
  • 现金日记账退款怎么记账
  • 行政转工会经费请示
  • 营业外支出如何做账
  • 未发货先开发票
  • 全资子公司的利与弊
  • 问答:分支机构是否需要设立账簿
  • 会计凭证销毁的地方
  • centos7 cp命令
  • ghost安装器怎么用
  • wpr是什么软件
  • linux忘记root密码怎么办
  • macbook桌面2
  • linux删除u盘记录
  • windows xp 配置
  • mac 10.8.5升级
  • 电脑windows8怎么样
  • rmxp4droid for 天敏电视盒子
  • cocos2d怎么用
  • Tutorial 8:Scaling Transformation
  • nodejs回调函数返回值如何传递给其它函数
  • android@localhost#1
  • 删除了c盘安全组或用户
  • r语言和python画图
  • node.js中用什么方法处理get、post请求的参数
  • vue怎样使用
  • fragment切换保存状态
  • jquery中有哪些dom操作?
  • 个体户是否需要缴纳企业所得税
  • 税局签三方
  • 增值税申报表如何下载
  • 国税局和地税局有什么区别
  • 环保标识码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设