位置: 编程技术 - 正文

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

  • 利润总额亏损还有没有所得税
  • 什么是价税分离?
  • 转让财产损失是指什么
  • 电子税务局发票验旧怎么操作
  • 油费补贴计入什么科目
  • 法人章和财务章谁保管
  • 测试收入的钱怎么用
  • 天猫积分购物券可以退吗
  • 什么软件属于无线网卡
  • 发票可用时间
  • 预算报表分析报告
  • 个税中的年金是什么意思
  • 固定资产原值减少账务处理
  • 一张合同分三次收款怎么开票?
  • 季报每个月需要反写吗
  • 不动产经营租赁印花税税率
  • 工资表中有哪些项目
  • 小公司发工资怎么做账
  • 未成立工会的企业、事业单位
  • 购进非税货物有折扣怎么做账?
  • 超额用电罚款应由谁缴纳
  • 计算房产税租金会计分录
  • 营业执照原件丢失后果
  • 工程结算收入的会计分录
  • windows7如何删除软件
  • 如何激活windows11专业版?
  • 在window10中可以使用什么窗口
  • 退税需要怎么操作
  • php缓存优化
  • php可变参数
  • 房屋出租后土地使用税谁来交
  • 预计负债内容
  • 哪些发票可以作为替代发票
  • 公司赞助是什么意思
  • 员工的通讯费怎么报销
  • js调用函数的几种方法
  • 安装cuda和cudnn
  • 季度盈利弥补亏损利润表
  • 合伙企业退伙个税
  • 金税盘怎么设置字体
  • 食堂增值服务有哪些
  • 运输发票抵扣税率是多少
  • 预收款项可以开发票吗
  • 出口货物退运已补税(未退税)证明
  • 文化事业建设费2023年是否减免了
  • 附加税税率是指
  • 融资租赁的增值税专用发票可不可以抵扣
  • 库存现金余额过大的风险
  • 车辆保险赔款怎么算
  • 银行账跨年一直没做怎么补
  • 汇算清缴业务招待费调整分录
  • 公司日常费用支出表怎么做
  • 成本核算的意义在于
  • 首次计提坏账准备应计入
  • 员工的车是否可以抵税
  • 什么叫归集和分配
  • mysql中日期格式
  • innodb 结构
  • 电脑开机一直显示windowsxp
  • 修改远程桌面端口命令是什么
  • win 注册表
  • linux oracle 12505
  • 进程lsass.exe
  • 在Linux系统中如何打开R语言控制台
  • lsass.exe在哪个文件夹
  • win8键盘失灵怎么办
  • win7旗舰版玩dnf总是未响应
  • android.json
  • node教学视频
  • nodejs quic
  • jquery 刷新div
  • 理解的英文
  • jquery设置背景颜色
  • android圆环进度条渐变
  • 陕西省国家励志奖学金证书查询入口
  • 去哪儿网客服电话怎么转人工
  • 按时交纳党费
  • 浙江省打造先行省
  • 国税申报时间2023年10月
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设