Doufám, že jsem to pochopil správně. Budu se tedy opakovat.
- Máte 1 stůl se spoustou položek
- Tento seznam máte z aplikace Excel, kde hledáte „sloupec vyhledávání“
- V případě shody nahraďte celou hodnotu výrazem "nahradit sloupec"
Pokud je to tento případ, pak by mohlo být řešením toto:
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
Tabulka "data" by byla ta, kde provedete nahrazení.
Použití toho může mít docela nějaké vedlejší efekty (např. zástupné znaky jako % ve „sloupec_hledání“, možná více shod – právě teď se vezme „náhodný“, výkon nemusí být nejlepší, ...) Ale myslím, že pro přesnější odpověď Potřeboval bych lepší otázku.
Upravit:
Díky Ralphovi... přidal jsem prioritu do tabulky "nahradit", abych mohl zpracovávat duplicitní zápasy.
V případě, že "RBC" má prioritu 3, výsledek je:
S prioritou 1 je: