阅文时长 | 0.05分钟 字数统计 | 142.4字符
主要内容 | 1、引言&背景
2、Stuff函数语法&模拟场景
3、声明与参考资料
『MSSQL·将一对多的数据合并为以指定分隔符的数据』
编写人 | SCscHero 编写时间 | 2021/5/16 PM1:25
文章类型 | 系列 完成度 | 已完成
座右铭 每一个伟大的事业,都有一个微不足道的开始。

一、引言&背景   完成度:100%

a) 应对问题

  1. 如何将数据按某个字段合并为一行的数据?
  2. 如何一对多的数据合并为一对一行以逗号分隔符的数据?

b) 应用场景

如图,上图中一个name对应多个product,每个product对应不同的amount,需要转换成类似于下图中的数据。

二、Stuff函数语法&模拟场景   完成度:100%

  • Stuff函数如下语法:
Stuff(character_expression,start,length,character_expression)
1. character_expression char
2. An expression of character data to be deleted. character_expression can be a constant, variable, or column of either character or binary data.
  • 模拟场景
-- 1. 模拟场景
create table #User_Game_MoneySum(
name nvarchar(10) NULL
,product Nvarchar(100) NULL
,amount BIGINT
); insert into #User_Game_MoneySum values ('SCscHero','星际争霸1','233');
insert into #User_Game_MoneySum values ('SCscHero','星际争霸2','1500');
insert into #User_Game_MoneySum values ('SCscHero','GTA5','99');
insert into #User_Game_MoneySum values ('SCscHero','彩虹六号','230');
insert into #User_Game_MoneySum values ('SCscHero','暗黑破坏神','400');
insert into #User_Game_MoneySum values ('SCscHero','魔兽争霸3','239');
insert into #User_Game_MoneySum values ('米特米勒','明日之后','500');
insert into #User_Game_MoneySum values ('米特米勒','星际争霸2','1000');
insert into #User_Game_MoneySum values ('星灵风暴','星际争霸2','0');
insert into #User_Game_MoneySum values ('星灵风暴','CS:GO','20');
insert into #User_Game_MoneySum values ('大象在房间里','绝地求生','100');
insert into #User_Game_MoneySum values ('大象在房间里','星际争霸2','0'); select * from #User_Game_MoneySum; -- 2. 分组
select name
,products = STUFF(
(select ','+product
from #User_Game_MoneySum b
where a.name = b.name
for xml path(''))
,1
,1
,'')
,sum(amount) as amount
from #User_Game_MoneySum a
group by name; DROP TABLE #User_Game_MoneySum

三、声明与参考资料   完成度:100%

原创博文,未经许可请勿转载。

如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。

MSSQL·将一对多的数据合并为以指定分隔符的数据的更多相关文章

  1. python接口自动化测试--数据分离读取Excal指定单元格数据

    上一篇博客讲了怎么批量读取Excal单元格数据,现在咱们说一下怎么读取Excal指定单元格数据. 一.首先建一个Test_Main类 #!/usr/bin/python # -*- coding: U ...

  2. python 数据清洗之数据合并、转换、过滤、排序

    前面我们用pandas做了一些基本的操作,接下来进一步了解数据的操作, 数据清洗一直是数据分析中极为重要的一个环节. 数据合并 在pandas中可以通过merge对数据进行合并操作. import n ...

  3. 使用Notepad++将多行数据合并成一行

    1.按Ctrl+F,弹出“替换”的窗口: 2.选择“替换”菜单: 3.“查找目标”内容输入为:\r\n: 4.“替换为”内容为空: 5.“查找模式”选择为正则表达式: 6.设置好之后,点击“全部替换” ...

  4. R语言数据合并使用merge数据追加使用rbind和cbind

    R语言中的横向数据合并merge及纵向数据合并rbind的使用 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用merge(x, y ,by.x = ,by.y ...

  5. angular2^ typescript 将 文件和Json数据 合并发送到服务器(2.服务端)

    nodejs 中使用框架 express web框架 multer 文件接受 直接贴代码了,我就不解释了 "use strict"; exports.__esModule = tr ...

  6. angular2^ typescript 将 文件和Json数据 合并发送到服务器(1.客户端处理)

    首先介绍下框架基本流程   (web > webservice  [前端架构] ) > (nodejs [ 数据中转站 ]) >(api [后台接口]) --web (html  a ...

  7. R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 由于业务中接触的数据量很大,于是不得不转战开始 ...

  8. SQLServer 中多行数据合并成一行数据(一个字段)

    需求:有四行数据,如下: 1.苹果 2.橘子 3.桃子 4.波罗 合并成一个字段:苹果,橘子,桃子,波罗: 需求明确之后,先弄点测试数据,上代码: --创建一个临时表 Create table #te ...

  9. Saiku Table展示数据合并bug修复(二十五)

    Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据,如果点击了 非空的字段 按钮,则会自动进行数据合并,为空的数据行以及数据列都会自动隐藏掉. 首先我们应该定位问题: ...

随机推荐

  1. Redis实战篇(二)基于Bitmap实现用户签到功能

    很多应用上都有用户签到的功能,尤其是配合积分系统一起使用.现在有以下需求: 签到1天得1积分,连续签到2天得2积分,3天得3积分,3天以上均得3积分等. 如果连续签到中断,则重置计数,每月重置计数. ...

  2. 洛谷P1290欧几里德游戏

    题目地址 题目大意: 两个人st和ol博弈 有两个整数n,m 每次轮到一个人时候,需要选择用大的那个数减去小的那个数的倍数(不能减为负数) 最后得到0的为胜利者 思路: (以下讨论均在n<m的条 ...

  3. javascript 取自己

    var own=docment.currentScript;

  4. PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642 题目描述: The highest building in our city has ...

  5. [Fundamental of Power Electronics]-PART I-4.开关实现-0 序

    4 开关实现 在前面的章节中我们已经看到,可以使用晶体管,二极管来作为Buck,Boost和其他一些DC-DC变换器的开关元件.也许有人会想为什么会这样,以及通常如何实现半导体的开关.这些都是值得被提 ...

  6. day-8 xctf-guess_num

    xctf-guess_num 题目传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&i ...

  7. 奇异值分解(SVD)与主成分分析(PCA)

    本文中的内容来自我的笔记.撰写过程中,参考了书籍<统计学习方法(第2版)>和一些网络资料. 第一部分复习一些前置知识,第二部分介绍奇异值分解(SVD),第三部分介绍主成分分析(PCA).以 ...

  8. kubernets-java 动态修改deployment 的replicas

    /** * Scale up/down the number of pod in Deployment * * @param deploymentName * @param numberOfRepli ...

  9. Mysql之Mycat读写分离及分库分表

    ## 什么是mycat ```basic 1.一个彻底开源的,面向企业应用开发的大数据库集群 2.支持事务.ACID.可以替代MySQL的加强版数据库 3.一个可以视为MySQL集群的企业级数据库,用 ...

  10. JAVAEE_Servlet_01_Servlet基础概念

    Servlet 基础概念 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间 ...