Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cari dan ganti seluruh nilai kolom SQL Server

Saya harap saya memahaminya dengan benar. Jadi saya akan ulangi.

  1. Anda memiliki 1 tabel dengan banyak entri
  2. Anda memiliki daftar ini dari excel tempat Anda mencari "kolom pencarian"
  3. 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:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengembalikan Jumlah Baris dalam Hasil Query di SQL Server

  2. SQL Server - Transaksi bersarang dalam prosedur tersimpan

  3. Bagaimana cara mendapatkan catatan pertama dan terakhir per grup di SQL Server 2008?

  4. Mengkonversi dari DateTime ke INT

  5. Mengunggah lembar Excel dan mengimpor data ke database SQL Server