MSSQL·将一对多的数据合并为以指定分隔符的数据
阅文时长 | | 0.05分钟 | 字数统计 | | 142.4字符 |
主要内容 | | 1、引言&背景 2、Stuff函数语法&模拟场景 3、声明与参考资料 |
||
『MSSQL·将一对多的数据合并为以指定分隔符的数据』 | |||
编写人 | | SCscHero | 编写时间 | | 2021/5/16 PM1:25 |
文章类型 | | 系列 | 完成度 | | 已完成 |
座右铭 | 每一个伟大的事业,都有一个微不足道的开始。 |
一、引言&背景 完成度:100%
a) 应对问题
- 如何将数据按某个字段合并为一行的数据?
- 如何一对多的数据合并为一对一行以逗号分隔符的数据?
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·将一对多的数据合并为以指定分隔符的数据的更多相关文章
- python接口自动化测试--数据分离读取Excal指定单元格数据
上一篇博客讲了怎么批量读取Excal单元格数据,现在咱们说一下怎么读取Excal指定单元格数据. 一.首先建一个Test_Main类 #!/usr/bin/python # -*- coding: U ...
- python 数据清洗之数据合并、转换、过滤、排序
前面我们用pandas做了一些基本的操作,接下来进一步了解数据的操作, 数据清洗一直是数据分析中极为重要的一个环节. 数据合并 在pandas中可以通过merge对数据进行合并操作. import n ...
- 使用Notepad++将多行数据合并成一行
1.按Ctrl+F,弹出“替换”的窗口: 2.选择“替换”菜单: 3.“查找目标”内容输入为:\r\n: 4.“替换为”内容为空: 5.“查找模式”选择为正则表达式: 6.设置好之后,点击“全部替换” ...
- R语言数据合并使用merge数据追加使用rbind和cbind
R语言中的横向数据合并merge及纵向数据合并rbind的使用 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用merge(x, y ,by.x = ,by.y ...
- angular2^ typescript 将 文件和Json数据 合并发送到服务器(2.服务端)
nodejs 中使用框架 express web框架 multer 文件接受 直接贴代码了,我就不解释了 "use strict"; exports.__esModule = tr ...
- angular2^ typescript 将 文件和Json数据 合并发送到服务器(1.客户端处理)
首先介绍下框架基本流程 (web > webservice [前端架构] ) > (nodejs [ 数据中转站 ]) >(api [后台接口]) --web (html a ...
- R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 由于业务中接触的数据量很大,于是不得不转战开始 ...
- SQLServer 中多行数据合并成一行数据(一个字段)
需求:有四行数据,如下: 1.苹果 2.橘子 3.桃子 4.波罗 合并成一个字段:苹果,橘子,桃子,波罗: 需求明确之后,先弄点测试数据,上代码: --创建一个临时表 Create table #te ...
- Saiku Table展示数据合并bug修复(二十五)
Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据,如果点击了 非空的字段 按钮,则会自动进行数据合并,为空的数据行以及数据列都会自动隐藏掉. 首先我们应该定位问题: ...
随机推荐
- JAVA面试-计算机网络-TCP三次握手
学习原因 这个是面试的一个常问热点,所以务必要掌握. 通俗示例 小红是人事部门的员工,现在正在招收IT人员,小明看到招聘信息和待遇,感觉很适合自己,所以准备和小红发消息了解具体情况.而简历在本故事中代 ...
- Elasticsearch集群升级指引
目录 背景 第一部分 版本升级指引 第二部分 升级方法和具体步骤 总结 参考文献及资料 背景 Elasticsearch集群的版本升级是一项重要的集群维护工作.本篇文章参考官方文档,将详细介绍相关细节 ...
- 万字长文,带你彻底理解EF Core5的运行机制,让你成为团队中的EF Core专家
在EF Core 5中,有很多方式可以窥察工作流程中发生的事情,并与该信息进行交互.这些功能点包括日志记录,拦截,事件处理程序和一些超酷的最新出现的调试功能.EF团队甚至从Entity Framewo ...
- Vue3+Vite引入Echarts5.0图表库
1 概述 环境Vue3+Vite,需要引入ECharts库. 2 尝试 目前ECharts已更新到5.0版本,在Vue中引入并不难,npm/cnpm安装后在需要的组件中引入: import echar ...
- 工作区和GOPATH
工作区和GOPATH 1.特性: 1.1.5版本的自举(即用 Go 语言编写程序来实现 Go 语言自身) 2.1.7版本的垃圾回收器 2.GOROOT.GOPATH 和 GOBIN GOROOT:Go ...
- 前端DDD总结与思考
软件开发架构演化与DDD起源 单体服务架构:大概10年前,我在武汉工作的时候,甲方客户购买我们的产品,一般都是连着设备一起购买,一套软件系统,一台惠普或者戴尔的企业级服务器,再加一个黑色的铁盒,销售部 ...
- Ionic5手写签名SignaturePad
测试程序下载:https://hanzhe.lanzous.com/itt47kncw3a 初始化项目 1. 首先新建一个Ionic5的项目: ionic start test-1 blank 2. ...
- B - Rikka with Graph HDU - 5631 (并查集+思维)
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some mat ...
- 8.switch语句
switch语句语法 switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数 ...
- 17- web测试面试题