说明:
STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。
语法:
STUFF ( character_expression , start , length , replaceWith_expression )
参数:
character_expression
字符数据的表达式。 character_expression 可以是常量、变量,也可以是字符列或二进制数据列。
start
一个整数值(从1开始),指定删除和插入的开始位置。start 的类型可以是 bigint。
※如果 start 为负或为零,则返回空字符串。
※如果 start 的长度大于第一个 character_expression,则返回空字符串。
length
一个整数,指定要删除的字符数。 length 的类型可以是 bigint。
※如果 length 为负,则返回空字符串。
※如果 length 的长度大于character_expression,则最多可以删除到character_expression 中的最后一个字符。
※如果 length 为零,则不删除字符直接在指定位置插入内容。
replaceWith_expression
字符数据的表达式。 replaceWith_expression 可以是常量、变量,也可以是字符列或二进制数据列。 此表达式从 start 开始替换 length 个字符的 character_expression。
※如果 replaceWith_expression 为 NULL
,则在不插入任何内容的情况下删除字符。
返回类型:
如果 character_expression 是支持的字符数据类型之一,则返回字符数据。 如果 character_expression 是支持的二进制数据类型之一,则返回二进制数据。
示例:
从第一个字符串 ABCDEFG的第 2
个位置 (B
) 开始删除3个字符,然后在删除位置插入第二个字符串,从而创建并返回一个字符串。
※如果 start 为负或为零,则返回空字符串。
※如果 start 的长度大于第一个 character_expression,则返回空字符串。
※如果 length 为负,则返回空字符串。
※如果 length 的长度大于character_expression,则最多可以删除到character_expression 中的最后一个字符。
※如果 length 为零,则不删除字符直接在指定位置插入内容。
※如果 replaceWith_expression 为 NULL
,则在不插入任何内容的情况下删除字符。
参考原文地址:https://docs.microsoft.com/zh-cn/sql/t-sql/functions/stuff-transact-sql?view=sql-server-2017
声明:本文是本人查阅网上及书籍等各种资料,再加上自己的实际测试总结而来,仅供学习交流用,请勿使用于商业用途,任何由此产生的法律版权问题概不负责,谢谢。