Ich hoffe ich habe es richtig verstanden. Also wiederhole ich.
- Sie haben 1 Tabelle mit vielen Einträgen
- Sie haben diese Liste von Excel, wo Sie nach der "Suchspalte" suchen
- Bei Übereinstimmung den gesamten Wert durch "Spalte ersetzen" ersetzen
Wenn dies der Fall ist, könnte dies die Lösung sein:
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
Die Tabelle "data" wäre diejenige, in der Sie die Ersetzung vornehmen.
Es kann einige Nebenwirkungen geben (z. B. Wildcards wie % in "search_column", möglicherweise mehrere Übereinstimmungen - im Moment wird dann eine "zufällige" genommen, die Leistung ist möglicherweise nicht die beste, ...) Aber ich schätze für Für eine genauere Antwort bräuchte ich eine bessere Frage.
Bearbeiten:
Danke an Ralph ... Ich habe der Tabelle "Ersetzen" eine Priorität hinzugefügt, um doppelte Übereinstimmungen handhaben zu können.
Falls "RBC" Priorität 3 hat, ist das Ergebnis:
Bei einer Priorität von 1 ist es: