2016-04-14 21 views
1

başka bir veritabanı kolonuna benzerliğinden göre bir veri tabanı kolon güncellenmesiAşağıdaki sütun içeren bir veri tabanı tablosu (Müşteriler) sahip

ID 
ENG_NAME 

Ben burada sorundur CUSTOMERS masanın

bir FULL_NAME girişle ENG.ENG_NAME girişlerinin tüm değiştirmek istiyor.
ENG_NAME, bir web formu aracılığıyla el ile sıkıştı ve dolayısıyla, tutarlılık yok. Örneğin, bir satır "Robin Hood" içerebilir. Başka bir "Hood, Robin L". Başka bir "Robin L Hood".

Sonra CUSTOMERS.FULL_NAME ile ENG.ENG_NAME değiştirin, CUSTOMERS tablodaki girişler arama yakın bir eşleşme bulmak istiyoruz.

Örnek:

verilerine yukarıda, ben ENG_NAME sütunlar böyle değiştirilir isteyeyim Tabanlı
ENG table    CUSTOMERS table   
ID  ENG_NAME  ID  FULL_NAME  FIRST_NAME  MIDDLE_INIT  LAST_NAME 
================  ==================================================================   
1  Hood,Robin  1  Robin L Hood  Robin   L    Hood 
2  Rob Hood  2  Maid M Marion Maid   M    Marion 
3  Marion M  3  Friar F Tuck  Friar   F    Tuck 
4  Rob Garza  4  Robert A Garza Robert   A    Garza 

: Bu nasıl yapılacağına ilişkin

ENG table 
ID  ENG_NAME 
==================== 
1  Robin L Hood 
2  Robin L Hood 
3  Maid M Marion 
4  Robert A Garza 

herhangi bir düşünce? Bu basit bir görev olacak değil Teşekkür

+1

En iyi ihtimalle müşteriler tabloya FK başvuru olması bu yüzden yeni bir sütun içinde vereceğini, bu dize manipülasyon çok şey alacak SQL forte. Eşleme mantığınızı eklemek için bir UDF oluşturabilir, ancak SQL'in dışında bunu yapmaktan daha iyi olursunuz. Eşleştirme kurallarınız açısından çok fazla düşünülmesi gereken potansiyel olarak çok karmaşık bir konu. [Bu 10 yaşındaki makale] (http://datamining.anu.edu.au/publications/2006/tr-cs-06-02.pdf), önümüzdeki zorluklarla ilgili bir fikir vermelidir. İyi şanslar! – strickt01

+2

Bu tür bir yakın isim eşleşmesi, hemen elde edilmesi neredeyse imkansız. Benim için daha büyük olan soru, bunu neden ilk sırada yapmak istiyorsun? Verileri düzgün bir şekilde normalize ederek sadece ismin 1 kopyasına ihtiyacınız vardır. –

+0

Kaç kayıttan bahsediyorsunuz?Bir sorgu ile bir bıçaklamak ama Excel'e bir tür ihracat oluşturmak ve geri kalanını el ile yapmak zorunda kalabilirsiniz. Sql veya başka bir dil kullanarak doğru almanın bahsettiği gibi zor bir görevdir. Kayıtların sayısı sınırlıdır, bu en iyi bahis olabilir. – Igor

cevap

1

, ben iyi C# (veya herhangi bir .NET) benzer dizeleri kısımlarını tespit algoritması bulma başlayacaktı. Daha sonra SQL Stored Prosedürlerine Derleme C# Koduna bakın ve SQL Server kullanarak bu kodu çağırın. Bu CLR Kodu daha sonra sonuçları analiz edip onunla ne yapmak istediğinizi bir tabloya yazabilir. Devamı İçin

: CLR SQL Server User-Defined Function

0

Ben Levenshtein mesafeyi kullanarak .NET yapardı. ...

1'de Başlangıç ​​ve bazı bağlara sahip olacak ve siz Ardından 2,3,4 taşımak
karar vermeniz gerekir

Bir CLR yapabilirdi ama nasıl ele alacağımız bağları ile? Ve sende bağların olacak. Ne zaman bir maç olmadığına nasıl karar vereceksin? gerçekten bir -

Ve orijinal verilerin
öyküsü Veya

İlgili konular