位置: 编程技术 - 正文

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

  • 增值税开票软件口令锁定怎么办
  • 发票签字有什么用
  • 外购商品发给员工增值税要怎么算
  • 企业返聘退休人员劳务合同
  • 个人独资企业是什么单位性质
  • 建筑企业简易计税异地预缴
  • 水利建设工程
  • 资产收益权转让产品
  • 调账以前年度损益调整如何结转
  • 用银行本票结算材料货款
  • 相关规定个人运输发票税率是多少
  • 水电费差价收入计算增值税公式是怎样的?
  • 租赁到期日 英语
  • 厂家取得的销售收入
  • 到底如何理解参数方程
  • 如何确定旧机器的折旧年限?
  • 转口贸易是否缴增值税
  • 企业购买原材料生产时企业还没有赚到钱
  • 民间非营利组织会计制度最新版
  • win10系统共享打印机报错0x0000011b解决办法
  • 退留抵税额会计分录
  • 王者荣耀进不去怎么回事最新
  • 会计结算要求
  • win11系统打不出顿号
  • 建设项目的设计阶段分为
  • 增值税专用发票丢了怎么补救
  • 企业管理费用的构成
  • yolov8训练自己的数据
  • php点运算符
  • 计提医疗保险费的会计分录
  • 劳务费如何支付
  • 银行贷款入账需要什么
  • python27文件夹
  • Python psd-tools如何转换文件
  • 房地产拆迁补偿协议
  • 预付卡发票能否抵扣
  • 残保基金什么时候申报
  • 其他货币资金的明细科目有哪些
  • 高铁票该怎么申领
  • 所得税费用该怎么算
  • 预收货款开票怎么做账
  • 电子发票和纸质发票的优缺点
  • MySQL导入导出命令
  • 租赁厂房对方不租怎么办
  • 员工误餐费是否缴纳个人所得税
  • 银行承兑汇票是表内还是表外业务
  • 个体户没有税务登记怎么开发票
  • 小规模购进商品怎么做账
  • 股权转让对价款如何计算
  • 外地工程预缴的工资怎么做账务处理
  • 社保申报工伤怎么操作
  • 投资性房地产如何进行初始计量
  • 应收票据明细表根据什么编制
  • 固定资产清理贷方余额是什么意思
  • 小规模公司一般开什么发票
  • 篮球俱乐部归什么部门管理
  • 错开发票所需要提供的资料以及时效要求是?
  • 购车的费用包括哪些费用
  • 企业进口外汇额度限制
  • mysql序列函数
  • winxp u盘拒绝访问
  • ubuntu16设置启动项
  • Ubuntu 14.04/14.10如何安装记账软件HomeBank?
  • linux的用户
  • ubuntu的sudo
  • linux中的用户管理主要涉及用户账号文件
  • linux中less和more
  • 思科用户模式命令
  • linux 删除 用户
  • android系统分区理解及分区目录细解
  • 深入理解计算机系统
  • js面向对象编程思想
  • python 操作微信
  • android listView二级目录选中效果
  • javascript教程
  • 置顶是什么意思呢
  • python 时间戳与格式化时间的转化实现代码
  • jsgenerator
  • 个人所得税选择那种方式更好
  • 大兴区地方税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设