Jeg håber, jeg har forstået det rigtigt. Så jeg gentager.
- Du har 1 bord med mange poster
- Du har denne liste fra excel, hvor du søger efter "søgekolonnen"
- 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: