第134章 SQL函数 STUFF
字符串函数,用于替换字符串中的子字符串。
大纲
STUFF(string,start,length,substring)
参数
-
string
- 作为子字符串替换目标的字符串表达式。 -
start
- 替换的起点,指定为正整数。从字符串开头开始的字符数,从1
开始计数。允许的值为0
到字符串的长度。要追加字符,请指定0
的开头和0
的长度。空字符串或非数字值被视为0
。 -
length
- 要替换的字符数,指定为正整数。要插入字符,请将长度指定为0
。要在开始后替换所有字符,请指定大于现有字符数的长度。空字符串或非数字值被视为0
。 -
substring
- 一个字符串表达式,用于替换由其起始点和长度标识的子字符串。可以比它替换的子字符串更长或更短。可以是空字符串。
描述
STUFF
用另一个子字符串替换一个子字符串。它标识要替换为位置和长度的子字符串,并将其替换为子字符串。
此函数提供与 Transact-SQL
实现的兼容性。
替换子字符串可能比原始值长或短。要删除原始值,子字符串可以是空字符串 (''
)。
起始值必须在字符串的当前长度范围内。您可以通过指定起始值 0
将子字符串附加到字符串的开头。空字符串或非数字值被视为 0
。
为 start
、length
或 substring
参数指定 NULL
将返回 NULL
。
STUFF
不能将 %Stream.GlobalCharacter
字段用于字符串或子字符串参数。尝试这样做会生成 SQLCODE -37
错误。
REPLACE 和 STUFF
REPLACE
和 STUFF
都执行子字符串替换。 REPLACE
按数据值搜索子字符串。 STUFF
按字符串位置和长度搜索子字符串。
示例
以下示例显示了单字符替换,将 BOLT
转换为 BELT
:
SELECT STUFF('BOLT',2,1,'E')
BELT
以下示例将一个 8
个字符的子字符串 (Kentucky
) 替换为一个较长的 12 个字符的子字符串和一个较短的 2
个字符的子字符串:
SELECT STUFF('In my old Kentucky home',11,8,'Rhode Island'),
STUFF('In my old Kentucky home',11,8,'KY')
In my old Rhode Island home In my old KY home
以下示例插入一个子字符串:
SELECT STUFF('In my old Kentucky home',19,0,' (KY)')
In my old Kentucky (KY) home
以下示例将一个子字符串附加到字符串的开头:
SELECT STUFF('In my old Kentucky home',0,0,'The sun shines bright ')
The sun shines bright In my old Kentucky home
以下示例通过将 8
个字符的子字符串替换为空字符串来删除它:
SELECT STUFF('In my old Kentucky home',11,8,'')
In my old home
网友评论