STUFF (Transact-SQL

适用于: SQL Server(从 2008 开始)Azure SQL 数据库Azure SQL 数据仓库并行数据仓库

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

 TRANSACT-SQL 语法约定

语法

复制

STUFF ( character_expression , start , length , replaceWith_expression )

参数

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

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

length
一个整数,指定要删除的字符数。 如果 length 为负,则返回空字符串。 如果 length 的长度大于第一个 character_expression,则最多可以删除到最后一个 character_expression 中的最后一个字符。 如果 length 为零,则在字符串中第一个字符之前插入内容。 length 的类型可以是 bigint。

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

返回类型

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

Remarks

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

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

补充字符(代理项对)

使用 SC 排序规则时,character_expression 和 replaceWith_expression 都可以包含代理项对。length 参数将 character_expression 中的每个代理项计为一个字符。

示例

以下示例从第一个字符串 abcdef 的第 2 个位置 (b) 开始删除三个字符,然后在删除位置插入第二个字符串,从而创建并返回一个字符串。

复制

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

下面是结果集:

复制

---------
aijklmnef   (1 row(s) affected)  

SqlServer中 stuff 函数相关推荐

  1. Sqlserver中DATEPART() 函数

    在Sqlserver数据库中,DATEPART() 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等.DatePart()函数的语法为: DATEPART(datepart,date) ...

  2. sqlserver中分区函数 partition by的用法

    partition  by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition  by用于给结果集分组,如果没 ...

  3. sqlserver中dateadd函数用法

    dateadd()函数在日期中添加或者减去指定的时间间隔 DATEADD(datepart,number,date) date 参数是合法的日期表达式.number 是您希望添加的间隔数:对于未来的时 ...

  4. sqlserver中rtrim函数跟ltrim函数的用法

    trim 函数:去除数据中的空格.  rtrim代表去除右边的空格,ltrim代表去除左边的空格 例子: update TPrcJi   set 中标项目=rtrim(中标项目),品牌=rtrim(品 ...

  5. SQLServer中round函数

    ---SQL四舍五入问题1: SELECT CAST('123.456' as decimal) ---123 将会得到 123(小数点后面的将会被省略掉). ---如果希望得到小数点后面的两位.则需 ...

  6. sqlserver中自定义函数+存储过程实现批量删除

    由于项目的需要,很多模块都要实现批量删除的功能.为了方便模块的调用,把批量删除方法写成自定义函数.直接上代码. 自定义函数: ALTER FUNCTION [dbo].[func_SplitById] ...

  7. SQLServer中 ROUND函数、CAST 和 CONVERT函数 的使用详解

    一.ROUND函数 返回数字表达式并四舍五入为指定的长度或精度. 1.语法 ROUND ( numeric_e-xpression , length [ , function ] ) 参数 描述 nu ...

  8. datediff oracle11,数据库中datediff函数用法

    数据库中datediff函数怎么用 如:SELECT DATEDIFF(D,'2015-6-16','2015-6-20') 返回结果表示 两个日期间隔的天数 sql数据库中的datediff函数是什 ...

  9. SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数

    SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 1 USE [tempdb] 2 GO 3 4 CREATE TABLE # ...

最新文章

  1. [***.launch] is neither a launch file in package [***] nor is [***] a launch
  2. 易企cms文章引用地址写法
  3. python基础语法手册format-python基础知识之格式化
  4. 从Java代码到Java堆理解和优化您的应用程序的内存使用
  5. Scala类构造方法的参数可以作为属性来使用
  6. mysql 补丁 patch6_系统管理-第6部分――补丁(patch)管理和在线更新
  7. 分类算法学习(一)——KNN算法的原理及简单实现
  8. 好用小工具及文章推荐推荐
  9. Python OpenCV 在视频上添加文字后保存视频
  10. MAC 下如何更改brew源地址
  11. 写在20110918:Eclipse中的outline标识以及常用快捷键
  12. Civil 3D 2012 SP 2.1发布了
  13. 【CSS】纯css实现立体摆放图片效果
  14. 等保培训.04.主机系统安全测评
  15. 我英语不好,能学编程吗?
  16. 【Paper Note】基于决策树算法的电信运营商客户流失预测
  17. P1522 牛的旅行 Cow Tours(floyd)
  18. Matlab图窗曲线太多,标签颜色分辨度不高的解决方法
  19. IE不能打开网页的原因及解决办法
  20. MySQL海量数据存储与优化(上)

热门文章

  1. 今天的“指导”感触:融会贯通;雄关漫道真如铁,而今漫步从头越!
  2. gStore:A Graph-based SPARQL Query Engine---part2
  3. NID-00135: There are 1 active threads错误
  4. 云服务器部署项目环境搭建
  5. 机器视觉(相机、镜头、光源)详细解析
  6. Jquery监听onChange事件
  7. c语言单片机停车场收费系统,基于51单片机停车场车位引导系统设计
  8. Build Your Own Angularjs 读书笔记(AngularJS牛逼的地方在于它内嵌了一个表达式到Function对象的编译器。。。当然还有DI框架)
  9. Bark – 给自己的 iPhone 发推送提醒,简单开源且免费
  10. i++和++i的区别