sql >> Databáze >  >> RDS >> Sqlserver

Nahraďte více znaků z řetězce bez použití jakýchkoli vnořených funkcí nahrazení

Věřím, že je jednodušší a čitelnější, pokud k tomu použijete tabulku.

declare @String varchar(max) = '(N_100-(6858)*(6858)*N_100/0_2)%N_35'

--table containing values to be replaced
create table #Replace 
(
    StringToReplace varchar(100) not null primary key clustered
    ,ReplacementString varchar(100) not null    
)

insert into #Replace (StringToReplace, ReplacementString)
values ('+', '~')
    ,('-', '~')
    ,('*', '~')
    ,('/', '~')
    ,('%', '~')
    ,('(', '~')
    ,(')', '~')

select @String = replace(@String, StringToReplace, ReplacementString)
from #Replace a

select @String

drop table #Replace


  1. Počítejte řádky v MySQL spolu se skutečným obsahem řádků

  2. Jak nainstalovat ovladač pdo do obrazu php docker?

  3. Odstraňte řádky SQL, kde ID nemají shodu, z jiné tabulky

  4. Jak zabránit duplicitním uživatelským jménům při registraci lidí?