Ik hoop dat ik het goed heb begrepen. Dus ik herhaal.
- Je hebt 1 tafel met veel inschrijvingen
- Je hebt deze lijst van Excel waar je zoekt naar de "zoekkolom"
- In het geval van een overeenkomst, vervang dan de hele waarde door "vervang kolom"
Als dit het geval is, dan is dit misschien de oplossing:
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
De tabel "data" zou degene zijn waarin u de vervanging doet.
Er kunnen nogal wat bijwerkingen zijn (bijv. jokertekens zoals % in "search_column", misschien meerdere overeenkomsten - op dit moment wordt er een "willekeurige" genomen, de uitvoering is misschien niet de beste, ...) een nauwkeuriger antwoord zou ik een betere vraag nodig hebben.
Bewerken:
Dankzij Ralph... heb ik een prioriteit toegevoegd aan de "vervang"-tabel om dubbele overeenkomsten te kunnen verwerken.
Als "RBC" prioriteit 3 heeft, is het resultaat:
Met een prioriteit van 1 is het: