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

Ersetzen Sie einen Teil der Zeichenfolge durch das großgeschriebene Äquivalent aus der temporären Querverweistabelle - tsql

Wenn Sie Ihre Werte, die Sie als Ersatz in einer Tabelle verwenden möchten, in der Lage sind, diese Aktion wiederholt auszuführen, könnten Sie eine Funktion erstellen, um die Ersetzung durchzuführen:

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

Dann können Sie die Daten abfragen, die Sie verwenden können:

SELECT dbo.replacement(i.Instrument) NewValue
FROM instrument AS i

Siehe SQL-Fiddle mit Demo

Was zurückgibt:

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

Hinweis:Ich habe den Basiscode hier gefunden von @SQL Kiwi und geändert, um eine Funktion zu verwenden, wenn Sie dies regelmäßig tun müssen