首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CHARINDEX跳过注释

CHARINDEX跳过注释
EN

Stack Overflow用户
提问于 2018-08-07 00:18:21
回答 2查看 53关注 0票数 0

我正在尝试使用STUFF w/ CHARINDEX来更新字符串的特定部分。我正在定位'@recipients‘标签,并在末尾添加另一封电子邮件。它似乎工作正常,预期字符串上有一个'--@recipients‘和一个'@recipients’,并且它一直在添加注释部分。有没有办法跳过注释过的部分,把它插入到正确的位置?

这是我当前的代码。

代码语言:javascript
复制
STUFF(sjs.command, (CHARINDEX(',', sjs.command, CHARINDEX('@recipients', 
sjs.command)) - 1), 1, ';alerts@companyname.com''') 
EN

回答 2

Stack Overflow用户

发布于 2018-08-07 02:25:19

您可以跳过--@接收者,如果@接收者前面有空格或其他字符。然后你可以修改你的内容来检查‘@recipients’,如下所示。

代码语言:javascript
复制
STUFF(sjs.command, (CHARINDEX(',', sjs.command, CHARINDEX(' @recipients', 
sjs.command)) - 1), 1, ';alerts@companyname.com''')
票数 1
EN

Stack Overflow用户

发布于 2018-08-07 02:47:32

这将删除--recipients和以下@之间的所有内容。将sjs.command替换为以下选择(将@test替换为sjs.command)

代码语言:javascript
复制
DECLARE @test varchar(max) = '@body=''blah'',--@recipients=''remove'',@recipients=''blah.com'',@subject=''blah'''

SELECT LEFT(@test, CHARINDEX('--@recipients', @test) -1) + RIGHT(@test, LEN(@test) - CHARINDEX('--@recipients', @test) - CHARINDEX('@', SUBSTRING(@test, CHARINDEX('--@recipients', @test) + 3, LEN(@test)))-1)

如果在真正的@recipients之前有一致的空格或字符,我更喜欢PriyankJ的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51711845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档