You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TSQL技术问题:字符串指定位置插单词与变量内容修改

没问题,我来帮你搞定这两个TSQL的问题:

问题1:如何在TSQL的字符串指定位置添加一个单词?

在TSQL里最常用的方法是用STUFF函数,它可以在指定位置插入内容,同时还能选择删除原字符串的部分字符(如果只是添加的话,删除字符数设为0就行)。

STUFF函数的语法是:
STUFF(原字符串, 起始位置, 要删除的字符数, 要插入的内容)

举个实际例子:假设你有字符串'HelloWorld',想在第6个字符的位置插入' Beautiful',代码如下:

DECLARE @str NVARCHAR(MAX) = 'HelloWorld';
SET @str = STUFF(@str, 6, 0, ' Beautiful');
SELECT @str; -- 输出结果:Hello BeautifulWorld

如果你的起始位置超过了原字符串的长度,STUFF会自动把要插入的内容追加到字符串末尾,非常方便。

另外你也可以用LEFT和RIGHT函数拼接的方式实现,比如:

DECLARE @str NVARCHAR(MAX) = 'HelloWorld';
SET @str = LEFT(@str, 5) + ' Beautiful' + RIGHT(@str, LEN(@str)-5);
SELECT @str;

不过STUFF函数更直观,推荐优先使用。

问题2:修改@value变量内容为customers.last_name = 'Schmidt'

你的变量@value存储的实际内容是customers.name = 'Schmidt'(因为TSQL里用两个单引号表示转义的一个单引号),这里只需要把name替换成last_name就行,用REPLACE函数就能轻松搞定:

DECLARE @value AS NVARCHAR(MAX) 
SET @value = 'customers.name = ''Schmidt'''

-- 执行替换操作
SET @value = REPLACE(@value, 'name', 'last_name')

SELECT @value; -- 输出结果:customers.last_name = 'Schmidt'

REPLACE函数会在整个字符串中查找第一个参数的子串,然后替换成第二个参数的内容。这里name是唯一的匹配项,所以直接替换就没问题。如果遇到更复杂的替换场景(比如有多个name需要区分),可以结合CHARINDEX定位位置后用STUFF替换,但这个场景下REPLACE是最简单高效的方案。

内容的提问来源于stack exchange,提问作者alexithymia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:36:19