Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zamień całe słowo za pomocą ms sql server replace

Spróbuj tego:(działa zgodnie z oczekiwaniami)

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

Wejście:

Powodzenia Powodzenia Powodzenia Powodzenia Dobrze

Wynik:

Lepsze, lepsze szczęście, lepsze Dobre szczęście, lepsze



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 wielokrotny problem LIKE

  2. Jak wielokrotnie wykonać procedurę składowaną

  3. Jak wywołać funkcję SQL w C#?

  4. W Sql Server, jak obracać dla wielu kolumn

  5. Bazy danych systemu SQL Server — konserwacja Tempdb