Sho*_*t92 18 sql sql-server sql-server-2012
我必须从@temp表中获取数据,其中包含类似"或ccc或bbb或aaa"的内容.我想将第一个匹配项替换为空格以获得类似"ccc或bbb或aaa"的内容.我正在尝试和替换,但他们似乎没有得到我想要的结果
我尝试过的:
DECLARE @stringhere as varchar(500)
DECLARE @stringtofind as varchar(500)
set @stringhere='OR contains or cccc or '
set @stringtofind='or'
select STUFF('OR contains or cccc or ',PATINDEX('or', 'OR contains or cccc or '),0 ,' ')
Run Code Online (Sandbox Code Playgroud)
Tim*_*sen 26
您可以结合使用STUFF并CHARINDEX实现您想要的效果:
SELECT STUFF(col, CHARINDEX('substring', col), LEN('substring'), 'replacement')
FROM #temp
Run Code Online (Sandbox Code Playgroud)
CHARINDEX('substring', col)将返回列中第一次出现的索引'substring'. STUFF然后替换此事件'replacement'.