sql >> Databasteknik >  >> RDS >> Sqlserver

Ersätt flera tecken från sträng utan att använda några kapslade ersättningsfunktioner

Jag tror att det är lättare och mer läsbart om du använder en tabell för att driva detta.

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. Mysql raderingsorder av

  2. Uppdatera data via en tabellvärderad funktion i SQL Server

  3. Ändrar Mysql Table-kolumnen för att vara skiftlägeskänslig

  4. Hur kan jag upptäcka om ansluten databas är MariaDB eller MySQL?