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 将多行数据合并为一行 需求说明: 在一些情况下需要将一个文件中的多行数据合并到 ...
最新文章
- 华为手机像素密度排行_2020拍照手机十大排行:华为128分破纪录,苹果无一上榜...
- oracle 查看 用户密码,oracle 查看用户密码的修改时间
- python interactive 清空内存_Python 内存回收问题
- 一个通过数据库镜像实现SPS 2003门户快速备份与恢复的操作手册
- SAP UI5 初学者教程之二十四 - 如何使用 OData 数据模型试读版
- 代码单元测试:gtest
- android-DNS服务找不到
- 定义mysql日志_请教:如何查看mysql数据定义操作的日志
- window tomcat 端口冲突问题解决
- rocketmq存储消息mysql_RocketMQ消息消费以及进度管理解析
- 吴恩达神经网络和深度学习-学习笔记-30-相关符号和计算+单层卷积网络+简单卷积网络示例
- Android 系统广播
- AttributeError: module ‘torch.onnx‘ has no attribute ‘set_training‘
- Mycat跨库join实现方式总结
- 用友u8不显示服务器名,用友u8提示对数据库服务器名
- 树莓派 摄像头 html5,视频演示如何给树莓派安装摄像头模块
- 计算机网络结构示意图,常见的五种计算机网络拓扑结构分析
- 短时傅里叶变换原理解
- Java计算长方体、四棱锥的表面积和体积
- 主动降噪技术matlab,主动降噪技术(ANC)的前生今世--原理仿真