Jag hoppas att jag förstod det rätt. Så jag ska upprepa.
- Du har en tabell med många poster
- Du har den här listan från excel där du söker efter "sökkolumnen"
- I händelse av en matchning, ersätt hela värdet med "ersätt kolumn"
Om så är fallet kan det här vara 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" skulle vara den där du byter ut.
Det kan finnas en del biverkningar med det (t.ex. jokertecken som % i "search_column", kanske flera matchningar - just nu tas en "slumpmässig" en, prestandan kanske inte är den bästa, ...)Men jag antar för ett mer exakt svar skulle jag behöva en bättre fråga.
Redigera:
Tack vare Ralph... Jag lade till en prioritet till tabellen "ersätt" för att kunna hantera dubbletter av matchningar.
Om "RBC" har prioritet 3 blir resultatet:
Med prioritet 1 är det: