位置: 编程技术 - 正文

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

  • 小规模纳税人发票可以抵扣吗
  • 外籍人士如何在中国办理延长签证
  • 小型微利企业的从业人数和资产总额
  • 空调安装维修费会计科目
  • 交易性金融资产的交易费用计入哪里
  • 增量留抵税额怎么做分录
  • 收到电子退库的摘要怎么写
  • 外商投资企业采购国产设备退税后续监管办法
  • 出售库存的原材料表格
  • 以货换货违法吗
  • 未开票收入增值税如何计提
  • 增值税减免税款科目怎么结转
  • 增值税普通发票有什么用
  • 海关缴款书如何做账
  • 代购商品委托书怎么写
  • 企业会计准则规定我国企业的会计期间按年度划分
  • 怎么查看当前刷新率
  • 个体工商户经营范围分类目录
  • 什么情况下出租人可以解除合同
  • 税务退回城建税期末怎么结转
  • PHP:curl_multi_init()的用法_cURL函数
  • 补缴增值税和滞纳税区别
  • g++.exe error
  • 财政发票可以报销吗
  • 未到期的应收票据办理贴现会计分录
  • 培训类产品
  • 圣托里尼岛具体位置
  • 分公司注销,总公司账务处理
  • 一朵牛肝菌 (© vnosokin/Getty Images)
  • 皮丘拉湖畔的乌代布尔城市宫殿,印度 (© Chaiyun Damkaew/Getty Images)
  • php ascii
  • css去掉项目符号
  • Js模板字符串添加点击事件
  • javaweb:jquery中ajax的应用
  • 税控盘全额抵扣发票怎么勾选
  • 商业汇票的承兑银行必须具备下列条件
  • 非流动资产基金对应的新科目
  • mysql基本sql语句大全(基础用语篇)
  • PHPCMS num 参数是什么意思?
  • centos7.3安装
  • 税前可扣除的税费
  • 股权转让溢价款缴纳增值税
  • 生产工人工资属于生产过程中发生的费用吗
  • 以美元报关是否要交税
  • 集团公司一般怎么称呼
  • 应付职工薪酬余额方向
  • 长期股权投资转让收益需要交增值税吗
  • 预收账款是负债增加还是减少
  • 会计科目表2023
  • 两家公司的钱混着用怎么做账
  • 先付款后开发票的会计分录?
  • 月末应付职工薪酬为负数怎么办
  • 制造企业费用会计
  • 银行扣掉的手续费怎么算
  • win10新预览版
  • xp系统打印任务一闪就没有了
  • win10每周更新
  • centos8 redhat
  • w10 2021年更新
  • win10系统访问不了
  • win10粘滞键怎么解除
  • linux 命令连接
  • win10系统打开cad出现致命错误
  • cocos2d schedule
  • node.js编译
  • android mark
  • shell脚本如何注释
  • 批处理强制删除文件
  • python输出1-100
  • 基于javascript的毕业设计
  • shell脚本-lt
  • jquery获取button的value值
  • android StrictMode使用
  • javascript编程基础
  • 江苏电子税务局官网登录入口
  • 地税总局局长
  • 我国税务师事务所有哪些
  • 宪法宣誓仪式流程图
  • 地方税务机关税率是多少
  • 西安医疗保险官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设