Saya harap saya memahaminya dengan benar. Jadi saya akan ulangi.
- Anda memiliki 1 tabel dengan banyak entri
- Anda memiliki daftar ini dari excel tempat Anda mencari "kolom pencarian"
- Jika ada kecocokan, ganti seluruh nilai dengan "ganti kolom"
Jika ini masalahnya, maka ini mungkin solusinya:
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
Tabel "data" akan menjadi tempat Anda melakukan penggantian.
Mungkin ada beberapa efek samping yang menggunakan itu (mis. wildcard seperti % di "kolom_pencarian", mungkin beberapa kecocokan - sekarang yang "acak" diambil, kinerjanya mungkin bukan yang terbaik, ...)Tapi saya rasa untuk jawaban yang lebih tepat Saya akan membutuhkan pertanyaan yang lebih baik.
Sunting:
Terima kasih kepada Ralph... Saya menambahkan prioritas ke tabel "ganti" untuk dapat menangani kecocokan duplikat.
Dalam hal "RBC" memiliki prioritas 3 hasilnya adalah:
Dengan prioritas 1 adalah: