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 的数据库表,其中包含以下记录:
EmpID | Name | City | Salary |
---|---|---|---|
FIN001 | John | London | 3000 |
FIN002 | Marry | New York | 2750 |
FIN003 | Jo | Paris | 2800 |
FIN004 | Kim | Amsterdam | 3100 |
FIN005 | Ramesh | New Delhi | 3000 |
FIN006 | Huang | Beijing | 2800 |
在下面的查询中,STUFF() 函数用于更改 Employee 表的 EmpID 列的记录:
UPDATE Employee SET EmpID = STUFF(EmpID, 1, 3, 'FINCAD');
-- 查看结果
SELECT * FROM Employee;
这将产生以下结果:
EmpID | Name | City | Salary |
---|---|---|---|
FINCAD001 | John | London | 3000 |
FINCAD002 | Marry | New York | 2750 |
FINCAD003 | Jo | Paris | 2800 |
FINCAD004 | Kim | Amsterdam | 3100 |
FINCAD005 | Ramesh | New Delhi | 3000 |
FINCAD006 | Huang | Beijing | 2800 |