SQL Server 函数

SQL Server (Transact-SQL) STUFF() 函数在字符串中的指定位置插入一定数量字符的子字符串。

如果指定的位置不在字符串的长度范围内,则该函数将返回空字符串。如果 length 为负数,则返回空字符串。如果length比字符串长,则删除直到字符串中的最后一个字符。如果length为零,则插入发生在position位置,并且不会删除任何字符。

语法

STUFF(string, position, length, substring) 

参数

string必填。 指定要修改的字符串。
position必填。 指定字符串中插入子字符串的位置。
length必填。 指定字符串中要替换的字符数。
substring必填。 指定要插入到字符串中的子字符串。

返回值

返回修改后的值.

示例 1:

下面的示例展示了 STUFF() 函数的用法。

SELECT STUFF('Learning SQL is fun', 10, 3, 'SQL Server');
Result: 'Learning SQL Server is fun'

SELECT STUFF('abcxyz', 4, 3, 'def');
Result: 'abcdef'

SELECT STUFF('ABCPQR', 4, 3, 'abc');
Result: 'ABCabc' 

示例 2:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameCitySalary
FIN001JohnLondon3000
FIN002MarryNew York2750
FIN003JoParis2800
FIN004KimAmsterdam3100
FIN005RameshNew Delhi3000
FIN006HuangBeijing2800

在下面的查询中,STUFF() 函数用于更改 Employee 表的 EmpID 列的记录:

UPDATE Employee SET EmpID = STUFF(EmpID, 1, 3, 'FINCAD');

-- 查看结果
SELECT * FROM Employee; 

这将产生以下结果:

EmpIDNameCitySalary
FINCAD001JohnLondon3000
FINCAD002MarryNew York2750
FINCAD003JoParis2800
FINCAD004KimAmsterdam3100
FINCAD005RameshNew Delhi3000
FINCAD006HuangBeijing2800