Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql CHARINDEX跳过评论_Sql - Fatal编程技术网

Sql CHARINDEX跳过评论

Sql CHARINDEX跳过评论,sql,Sql,我正在尝试使用STUFF w/CHARINDEX来更新字符串的特定部分。我正在定位“@recipients”标签并在末尾添加另一封电子邮件。它似乎工作正常expect on字符串有一个'-@recipients'和一个'@recipients',并且它一直添加到注释部分。有没有办法跳过注释部分,将其插入正确的位置 这是我当前的代码 STUFF(sjs.command, (CHARINDEX(',', sjs.command, CHARINDEX('@recipients', sjs.comma

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

这是我当前的代码

STUFF(sjs.command, (CHARINDEX(',', sjs.command, CHARINDEX('@recipients', 
sjs.command)) - 1), 1, ';alerts@companyname.com''') 
如果@recipients前面有空格或其他字符,则可以跳过--@recipients。然后,您可以修改您的内容以检查“@recipients”,如下所示

STUFF(sjs.command, (CHARINDEX(',', sjs.command, CHARINDEX(' @recipients', 
sjs.command)) - 1), 1, ';alerts@companyname.com''')

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


如果在真正的
@recipients

之前有一个一致的空格或字符,那么我更喜欢PriyankJ的答案。sjs.command中有什么?sjs.command只是一个带有profile_name、recipients、subject的长字符串。基本上是一组生成的电子邮件字段@普里扬基
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)