数据库:SQLServer Stuff 函数用法笔记

今天小编给大家分享一下自己整理一下SQLServer Stuff函数用法技巧和常用示例,有需要的朋友可以学习一下。

一、Stuff函数的作用

1.1官方解释

STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。

1.2 语法格式

STUFF ( character_expression , start , length ,replaceWith_expression )

1.3 参数详解 

1、character_expression

字符数据的表达式。character_expression 可以是常量、变量,也可以是字段或二进制字段。

2、start

start用来指定删除和插入开始位置的数值。 如果 start 值为负或为零,则返回空字符串。 如果 start 的长度大于第一个 character_expression,则返回空字符串。start 的类型也可以是 bigint。注意:start 值1 表示第一个字符。

3、length

length用来指定要删除的字符个数。 如果 length值 为负,则返回空字符串。 如果 length 的长度大于第一个 character_expression,则最多可以删除到最后一个 character_expression 中的最后一个字符。 如果 length 为零,则插入在 start 位置发生,并且不会删除任何字符。length 的类型也可以是 bigint。

4、replaceWith_expression

字符数据的表达式。character_expression 可以是常量、变量,也可以是字段或二进制字段。 此表达式从 start 开始替换 length 个字符的 character_expression。 如果 replaceWith_expression 为 NULL,则在不插入任何内容的情况下删除字符。

5、返回类型

如果 character_expression 是支持的字符数据类型之一,则返回字符数据。如果 character_expression 是支持的二进制数据类型之一,则返回二进制数据。

6、备注

如果开始位置或长度值是负数,或者开始位置大于第一个字符串的长度,则返回 Null 字符串。 如果开始位置为 0,则返回 Null 值。 如果要删除的长度大于第一个字符串的长度,则删除到第一个字符串中的第一个字符。

如果结果值大于返回类型支持的最大值,则会引发错误。

二、Stuff函数用法示例

2.1 删除字符

select STUFF('hello',1,1,'') as 删除字符列  -- 删除第一个字符

                       

2.2 替换字符

select STUFF('hello',4,2,'aa') as 替换字符列 -- 将lo 替换为 aa

                       

2.3 字段拼接功能(实际开发当中比较常用

1、创建测试数据表

CREATE TABLE [dbo].[T_user](  [id] [varchar](36) NOT NULL,  [name] [varchar](36) NULL,  [age] [int] NULL,  [address] [nvarchar](50) NULL,  [create_date] [datetime] NULL, CONSTRAINT [PK_T_user] PRIMARY KEY CLUSTERED(  [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

2、插入数据

1 admin 25 北京 2020-08-22 00:00:00.000

2 user 30 南京 2020-08-22 00:00:00.000

3、查询脚本示例

SELECT STUFF((SELECT ','+name FROM dbo.T_user FOR XML PATH('')),1,1,'') names 

说明:

执行结果:

                       

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义注解,aop实现注解锁

多线程环境下,会出现线程不安全的问题,所以要对某些方法加锁以保证线程安全 但是如果方法过多,每个方法前后都加这么一句,有点麻烦了,而且代码可读性也会差一些。可以使用aop切面编程,对某些加有特定注解&…

手机端刷recovery工具_MIUI/REDMIN手机玩机汇集

愿你刷机半生归来仍是MIUI1解锁篇解锁Bootloader准备工作:1.手机备份数据2.手机进入开发者模式①进入“设置 -> 我的设备 -> 全部参数"中连续点击MIUI版本,进入”开发者模式“②进入“设置 -> 开发者选项 -> 设备解锁状态”中绑定账号和…

数据结构基础:线性表学习笔记

1、线性表定义线性表是指n个元素的有限序列(n>0),通常用(a1,a2,a3...,an),来表示。2、线性表特点1、存在唯一的一个首元素2、存在唯一一个尾元素3、除第首元素外,每个元素只有一个直接前驱。4、除尾元素外,每个元素只有一个直接后继。3、线性表的存储…

iphone导出照片到电脑_iPhone里的照片如何快速导入电脑

前几日我一好友发微信问我:“向阳,我手机里有一万多张照片,怎么能快速的备份到电脑里?”我一看这问题,确实很多果友从用苹果手机开始,机器已经更新换代了好多代了,照片是越来越多,内…

数据结构基础:栈和队列学习笔记

1、栈1.1 栈的定义栈是只能通过访问它的一端来实现数据的存储和检索的一种特殊的线性数据结构。栈的修改要遵循先进后出的原则,这个是栈的核心。在栈中进行插入和删除操作的一端称为栈顶(Top)。另一端被称为栈底(bottom&#xff0…

idea @Autowired 注入爆红(无法注入)

问题如下图所示,idea Autowired 注入爆红(无法注入) seettings ----> Editor Inspactions ----->spring ---->spring Core ----> Code ----> Autowring for Bean Class 去掉那个勾 效果如下

华为手机相册怎么镜像翻转_怎么利用手机相册制作电子视频

怎么通过手机照片制作视频?将照片做成视频并不是很难,可以直接在手机上进行操作,下面来看看是怎么操作的。方法/步骤在手机上打开清爽视频编辑器,有视频编辑、美拍美摄、电子相册、特效模板、动感视频、创意视频、动态字幕、视频变…

数据结构基础:树结构的学习笔记

1、树的定义树是n(n>0)个节点的有限集合。当n0时称为空树,当n>0 为非空树,任何非空树中,有且仅有一个根节点;其余节点可分为m(m>0)个互不相交的有限集合T1、T2 等,其中每一个集合都可以称为一棵树&#xff0c…

android组件用法说明,Android第三方控件PhotoView使用方法详解

Android第三方控件PhotoView使用方法详解发布时间:2020-10-21 15:06:09来源:脚本之家阅读:74作者:zhaihaohao1PhotoView的简介:这是一个图片查看库,实现图片浏览功能,支持pinch(捏合)手势或者点…

idea中新建分支并且切换到新建的分支上

开发新功能,idea上新建自己的分支,要在dev分支上新建 首先,idea右下角可以看到目前在dev分支上 点击dev,接着New Branch 输入分支名 在Local Branches中就显示了 然后可以看到已经切换到刚新建的分支上了 想要切换到刚新建的分支上开发时,可以点击分支,在弹框上点击Checkout

vnpy怎么创建策略并回测_【手把手教你】入门量化回测最强神器backtrader(一)

1 引言目前基于Python的量化回测框架有很多,开源框架有zipline、vnpy、pyalgotrader和backtrader等,而量化平台有Quantopian(国外)、聚宽、万矿、优矿、米筐、掘金等,这些量化框架或平台各有优劣。就个人而言&#xff…

数据结构基础:算法的基础知识笔记

1、算法的概念算法是问题求解过程中的精确描述,它为解决某一特定类型的问题规定了一个运算过程。2、算法的特点2.1 有穷性一个算法必须在有穷的步骤结束后结束,并且每一步都在有穷时间内完成。2.2 确定性算法的执行过程中每一步都要有确定的定义&#xf…

数据结构基础:图结构的学习笔记

1、图的定义图是比树更加复杂的数据结构,在图的结构当中,任意两个节点之间都有可能有直接关系,所以图中一个节点的前驱和后继的数目是没有限制的。2、图的用途用于描述各种复杂的数据对象,在自然科学、社会科学和人文科学等很多领…

企业网站 源码 服务邮箱:_企业网站建设对于服务器的选择至关重要

网站建设是离不开租用服务器的,这是目前大多数企业都在做的。但有些企业由于对网站服务器的租用技巧及经验的缺乏,经常会导致网站在运营过程中出现非常多的问题,严重影响了企业业务的正常开展。石家庄网站建设方面的人才来说明几点不容忽视的…

linux sli 提高效率,从原理到性能提升 MCP78智能SLI全解析

NVIDIA正式发布了“Hbrid SLI”技术在昨日的2008 CES上,NVIDIA正式向外界发布了“Hbrid SLI”技术,即我们所俗称的混合SLI,而NVIDIA在发布时已更正式名为“智能SLI技术”。虽然这仅仅是NVIDIA在此次消费电子展上的宣讲主题之一,但…

[GitHub]第三讲:简单分支操作

Git 最核心的操作对象是版本( commit ),最核心的操作技巧就是分支。 什么是分支? 仓库创建后,一旦有了新 commit,默认就会放到一个分支上,名字叫 master。前面咱们一直看到的多个版本组成的一条…

算法基础:常用的排序算法知识笔记

1、算法外排序分类2、冒泡排序冒泡排序(Bubble Sort)属于交换排序,它的原理是:循环两两比较相邻的记录,如果反序则交换,直到没有反序的记录为止。实现算法:/*** 冒泡排序优化后的算法* 设置一个…

302状态码_http状态码是什么?301 302 404的SEO应用场景

什么是HTTP状态码?简单的讲,就是用以表示网页服务器HTTP响应状态的3位数字代码。其中1xx表示临时响应,2xx表示成功处理了请求,3xx代表重定向,4xx表示请求错误,而5xx表示服务器错误。除了网页正常返回200之外…

算法基础:常用的查找算法知识笔记

1、查找表和查找效率的概念查找表是指由同一类型的数据元素构成的集合。分为静态查找表和动态查找表。1.1 静态查找表1、查询某个特定元素是否在查找表的集合当中2、查询某个特定元素的各种属性1.2 动态查找表1、在查找表中插入一个数据元素2、在查找表中删除一个元素1.3 关键字…