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

Søg og erstat hele kolonneværdien SQL Server

Jeg håber, jeg har forstået det rigtigt. Så jeg gentager.

  1. Du har 1 bord med mange poster
  2. Du har denne liste fra excel, hvor du søger efter "søgekolonnen"
  3. I tilfælde af et match, skal du erstatte hele værdien med "erstat kolonne"

Hvis dette er tilfældet, kan dette være løsningen:

declare @data table (Column1 nvarchar(50))

insert  into @data
        (Column1)
values  (N'RbC investment for Seniors 65+'),
        (N'RBC inv for juniors')

declare @replace table
    (
     OriginalValue nvarchar(50),
     NewValue nvarchar(50),
     [priority] int
    )

insert  into @replace
        (OriginalValue, NewValue, [priority])
values  (N'rbc inv', N'RBC dominion securities', 2),
        (N'rbc dom', N'RBC dominion securities', 2),
        (N'RBC', N'RBC Bank', 3)

update  @data
set     Column1 = coalesce((
                            select top 1
                                    NewValue
                            from    @replace
                            where   Column1 like '%' + OriginalValue + '%'
                            order by [priority]
                           ), Column1)

select  *
from    @data

Tabellen "data" ville være den, hvor du foretager udskiftningen.

Der kan være en del bivirkninger ved at bruge det (f.eks. jokertegn som % i "search_column", måske flere matches - lige nu tages en "tilfældig" en, ydelsen er måske ikke den bedste, ...)Men jeg gætter på et mere præcist svar, jeg ville have brug for et bedre spørgsmål.

Rediger:

Takket være Ralph... Jeg tilføjede en prioritet til "erstat"-tabellen for at kunne håndtere duplikerede kampe.

Hvis "RBC" har prioritet 3, er resultatet:

Med en prioritet på 1 er det:




  1. SQL:Binær til IP-adresse

  2. opret database ved hjælp af sudo mysql -u=root

  3. Få datoer fra et ugenummer i T-SQL

  4. CodeIgniter MSSQL-forbindelse