Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ersetzen Sie mehrere Zeichen aus einer Zeichenfolge, ohne verschachtelte Ersetzungsfunktionen zu verwenden

Ich glaube, es ist einfacher und lesbarer, wenn Sie eine Tabelle verwenden, um dies zu steuern.

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