sql >> データベース >  >> RDS >> Sqlserver

ネストされた置換関数を使用せずに、文字列から複数の文字を置換します

    これを駆動するためにテーブルを使用すると、より簡単で読みやすくなると思います。

    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. CTEのOracleテーブル関数

    2. MySQLで外部キーチェックを無効にする方法

    3. 1つのクエリでORDERBYRAND()を使用せずにRAND()行をフェッチする

    4. Dapper-Oracleschema.package.functionを呼び出します