Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Заменете цялата дума с помощта на ms sql server replace

Опитайте това:(Работи според очакванията)

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

Вход:

Добър късмет Добър късмет Добър

Резултат:

По-добре По-добър късмет По-добър късмет По-добър



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се присъединя към първия ред

  2. Агрегация на низове през годините в SQL Server

  3. Поправете „Грешка при аритметично препълване при преобразуване на израз в тип данни int“ в SQL Server

  4. SQL Server 2017:Налични функции в Linux

  5. SQL вътрешно присъединяване към нулеви стойности