如何替换句子中的特定单词而不替换SQL Server中的子字符串

Vis*_*nuB 6 sql database sql-server

我想替换句子中的特定单词而不是子字符串中的特定单词.

喜欢

DECLARE @i VARCHAR(250)
SET @i = 'MR JOHN NAMR is working from 3 days.'

PRINT REPLACE(@i, 'MR ', '') 
Run Code Online (Sandbox Code Playgroud)

输出:

'JOHN NAis working from 3 days.'
Run Code Online (Sandbox Code Playgroud)

就像在这里我想用空字符串替换'MR'.但如果你看到它也正在取代'NAMR'中的'MR'.

请提出解决方案.

Sur*_*mar 5

您可以尝试以下查询。在这里,在开始和结束处先插入一个空格,然后再删除该空格。

DECLARE @i VARCHAR(250)
SET @i = 'MR JOHN NAMR is working from 3 days.'

SELECT rtrim(ltrim(Replace(replace(' '+@i+' ',' MR ','  '),
' MR ','  ')))
Run Code Online (Sandbox Code Playgroud)

输出如下图所示

JOHN NAMR从3天开始工作。

您可以找到现场演示Demo Replace Word