使用 ms sql server“替换”替换整个单词

MAR*_*att 4 sql-server

declare @str varchar(50)='GoodLuck Markand'
declare @replacedString varchar(50)
set @replacedString = replace(@str,'Good','Better')
print @replacedString
Run Code Online (Sandbox Code Playgroud)

我希望输出保持不变,因为没有像“Good”这样的单词。但输出是“BetterLuck Markand”。

我想要 MS SQL Replace 函数来比较确切的单词,然后替换它。我怎样才能这样做?

Vee*_*era 5

试试这个:(按预期工作)

declare @str varchar(500)
set @str = 'Good Good Good Good Good Good Good Good Luck Good GoodLuck MarkAndGood GoodMarkAnd MarkAndGood Good'
declare @replacedString varchar(500)
SET @replacedString = replace(@str,' Good ',' Better ')

SET @replacedString = replace(@replacedString,' Good ',' Better ')

SET @replacedString = CASE WHEN CHARINDEX('Good ', @replacedString) = 1 THEN 
                        STUFF(@replacedString, 1, Len('Good'), 'Better')
                      ELSE @replacedString END

SELECT CASE WHEN CHARINDEX(REVERSE(' Good'), REVERSE(@replacedString)) = 1 THEN 
                             Reverse(STUFF(Reverse(@replacedString), CHARINDEX(Reverse(' Good'), 
                             Reverse(@replacedString)), Len(' Good'), Reverse(' Better')))
                      ELSE @replacedString END AS A
Run Code Online (Sandbox Code Playgroud)

输入:

好运好运好运好运好运

结果:

更好 更好 好运 更好 好运 更好

  • 尝试使用此字符串“Good GoodLuck Good MarkandGood Good”。 (2认同)
  • 试试这个字符串“GoodMarkAnd”。它什么也没有提供。 (2认同)