Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Substitua parte da string pelo equivalente em maiúsculas da tabela temporária de referência cruzada - tsql


Se você tiver seus valores que deseja usar como substituição em uma tabela capaz de executar essa ação repetidamente, poderá criar uma função para realizar a substituição:
create function replacement(@string varchar(max))
returns varchar(max)
as
begin

    with ReplaceWord(InternalWord, ExternalWord) as
    (
        select InternalValue, ExternalValue
        from capital
    )
    select @string =  REPLACE(@string, r.InternalWord, r.ExternalWord)
    from ReplaceWord r
    where CHARINDEX(r.InternalWord, @string) > 0

    return @string
end

Então, para consultar os dados, você pode usar:
SELECT dbo.replacement(i.Instrument) NewValue
FROM instrument AS i

Consulte SQL Fiddle with Demo

Que retornará:
|                                     NEWVALUE |
------------------------------------------------
|            Merck & Co INC Common Stock USD.5 |
| Newmont Mining CORP Common Stock USD INC 1.6 |

Observação:encontrei o código base aqui do @SQL Kiwi e alterei para usar uma função se isso for algo que você terá que fazer de forma consistente