STUFF()函数将查询的多行数据合并为一行
一、stuff函数
(一)说明
STUFF()函数用于删除指定长度的字符,并可以在制定的起点处插入另一组字符。
(二)函数
STUFF ( character_expression , start , length ,character_expression )
参数 | 说明 |
---|---|
character_expression | 一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。 |
start | 一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个character_expression 长,则返回空字符串。start 可以是 bigint 类型。 |
length | 一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个character_expression 中的最后一个字符。length 可以是 bigint 类型。 |
返回类型 | 如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。 |
==备注 ==:
如果开始位置或长度值是负数,或者如果开始位置大于第一个字符串的长度,将返回空字符串。如果要删除的长度大于第一个字符串的长度,将删除到第一个字符串中的第一个字符。
如果结果值大于返回类型支持的最大值,则产生错误。
(三)示例
以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。
SELECT STUFF(‘abcdef’, 2, 3, ‘ijklmn’);
下面是结果集:
aijklmnef
(1 row(s) affected)
二、stuff函数可用于数据库中查询的多行数据合并为一行
假设表work有两个列分别id 和name
id name work
1 张 经理
2 张 开发人员
select name,work=STUFF((SELECT ‘,’+work FROM work t WHERE name=t1.name FOR XML PATH(’’)), 1, 1, ‘’) from work GROUP BY name
得到合并并分组的结果
name work
张 经理,开发人员
分析:
拓展FOR XML PATH(’’)https://www.cnblogs.com/yasuo2/p/6433697.html
1.character_expression:
,经理,开发人员
2.start:1,length:1
3.‘’
这句话的意思就是将”,经理,开发人员“中的第一个逗号给去掉
STUFF()函数将查询的多行数据合并为一行相关推荐
- 各数据库SQL查询结果多行数据合并成一行
SQL查询结果多行数据合并成一行 一.Oracle函数多行数据合并成一行 二.Mysql函数多行数据合并成一行 三.sqlserver函数多行数据合并成一行 四.postgresql函数多行数据合并成 ...
- sqlserver函数多行数据合并成一行
sqlserver函数多行数据合并成一行 SELECTusername,coursename= (STUFF((SELECT ',' + coursenameFROM t_user_courseWHE ...
- java 合并到一行_mysql中将多行数据合并成一行数据
一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.acti ...
- mysql大量数据合并_mysql中将多行数据合并成一行数据
一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.acti ...
- mysql把相同id的多行合并到一行_mysql中将多行数据合并成一行数据
一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.acti ...
- Oracle多行数据合并成一行
Oracle多行数据合并成一行 一.listagg 函数------(有长度限制) SELECT listagg(待拼接字段, ',') within group(ORDER BY 待拼接字段) AS ...
- python如何输入多行数据合并_Python如何将多行数据合并成一行|python如何实现excle数据合并...
用Python导出工程文件两个子页里的数据成为两个excel表格,但我想把它合并成个一个excel表格的两个sheet 可以采用一些Excel的模块去实现,比如xlrd.xlwt.openpyxl.x ...
- Excel如何将多行数据合并为一行并添加间隔符号
今天小编跟大家分享一下Excel如何将多行数据合并为一行 1.打开要合并的Excel文件 2.选中要合并的单元格区域 3.然后点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不 ...
- linux 将多行数据合并为一行
文章目录 linux 将多行数据合并为一行 需求说明: 解决方法: tr 命令 xargs 命令 awk命令 linux 将多行数据合并为一行 需求说明: 在一些情况下需要将一个文件中的多行数据合并到 ...
最新文章
- MPAndroidChart的具体属性方法
- linux双小于命令,Linux文本比较命令:diff
- C语言回调函数Demo - Win32版
- 黄褐斑的处理(转载)
- 《疯狂Java讲义精粹》读书笔记2 ------ 多态
- redisserver是什么问题_面试官老是问:为什么采用单线程的Redis也会如此之快?...
- 将button变成圆形(有弧度)
- 用ViewPager实现轮播效果
- 服务器网站管理页面打不开解决方法
- 未来函数在线检测_嵌入式实时操作系统任务栈溢出检测原理
- 蓝牙耳机声音一顿一顿的_尴尬!vivo无线耳机上线两个月价格大跳水,却仍被批不值...
- LAFEAT: Piercing Through Adversarial Defenses with Latent Features论文解读
- Linux文件误删除恢复操作
- android settings过渡动画,华为过渡动画
- warn - Attempted to load @next/swc-linux-x64-
- 腾讯云域名证书下载_备案域名证书获取
- 需求分析——软件需求规格说明书标准目录
- 虚幻4 虚拟漫游场景 制作过程
- python电影推荐算法_基于Python的电影推荐算法
- RabbitMQ中的死信及死信队列详解