sql >> Database teknologi >  >> RDS >> Sqlserver

Erstat en del af strengen med ækvivalent med stort bogstav fra krydsref temp-tabel - tsql

Hvis du har dine værdier, som du vil bruge som erstatning i en tabel, kan du udføre denne handling gentagne gange, så kan du oprette en funktion til at udføre erstatningen:

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
 

For derefter at forespørge dataene kan du bruge:

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

Se SQL Fiddle with Demo

Hvilket vil returnere:

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

Bemærk:Jeg fandt basiskoden her fra @SQL Kiwi og ændrede den til at bruge en funktion, hvis dette er noget, du bliver nødt til at gøre på en konsekvent basis



  1. Hvordan eksporteres de resulterende data i PostgreSQL til .CSV?

  2. hvordan man henter meddelelser fra databasen med forskellige typer meddelelser

  3. MySQL viser aktuelle forbindelsesoplysninger

  4. SQL Query optimering for at undgå midlertidig tabel