İstemcileri üç alanı kullanarak eşleştirmeye çalışıyorum: Ad, Soyadı, Cinsiyet ve DOB. SSIS Bulanık Arama'nın sadece dizeler için geçerli olduğu anlayışı (sadece bazı blogcular böyle bir belgede görmediler) bu senaryoda DOB'u bir şekilde “güven” oluşturmak için kullanabilir miyim? Bu araç tarihleri nasıl karşılaştırır? İşte SSIS Bulanık Arama için tarihler
bu konuda bir iplik: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d2e53f8c-abfc-461e-9263-fd46b95247c0/ssis-fuzzy-lookup-and-dates?forum=sqlintegrationservicescevap
Ben Ad/DOB aramaların çok yapmak ve doğru almak gerçekten çok zor. Aşağıdakine benzer bir işlev kullanarak sıralama yapmayı düşünebilirsiniz. Bu, temel olarak iki 8 basamaklı tarih (YYYYMMDD) alır ve hangola eşleştirilen hanelerin sayısını sayar. (01 karşı 10)
- 1976-10-20 ve 1976-01-20
- 1976-10-20 ve 1975-10: Örneğin
bu tarih çiftleri 1 Bayan eşlemeli rakama sahip Bu sıralama için iyidir ele ne kadar verilere bağlı olarak
-20 (76 vs 75), ancak (aka öncelikle en iyi eşleşmeyi koyarak) (dahil hiçbir indeksleme olmadığından) değil filtreleme için.
ALTER FUNCTION dbo.BirthDateRank (@DOB1 DATE, @DOB2 DATE)
RETURNS INT
AS
BEGIN
-- 10/31/2016 --> 10312016
DECLARE @xDOB1 VARCHAR(10) = REPLACE(CONVERT(CHAR(10), @DOB1, 101), '/', '');
DECLARE @xDOB2 VARCHAR(10) = REPLACE(CONVERT(CHAR(10), @DOB2, 101), '/', '');
DECLARE @i INT = 0;
DECLARE @iRet INT = 0;
WHILE @i <= LEN(@xDOB1)
BEGIN
SET @iRet = @iRet + CASE WHEN SUBSTRING(@xDOB1, @i, 1) = SUBSTRING(@xDOB2, @i, 1) THEN 0 ELSE 1 END
SET @i = @i + 1
END
RETURN @iRet;
END;
GO
Çok teşekkür ederim, bu harika bir öneri. Bununla birlikte, ne yaptığını görmek için işlevi izlemeye çalışıyorum; Bu, eşleşmeyen basamak sayısını döndürür? Örneğin: 1945-02-23 ve 1944-03-23 İKİ döndürür, çünkü 45'e karşılık 44'ün bir yanlış eşleşmesi vardır ve 02'ye karşılık 03'ü diğerine sahiptir? Teşekkürler! – LearnByReading
Anladın! Bunun sadece milyonlarca satır değil, daha küçük veri kümelerini sıralamak için en iyisi olduğunu unutmayın. –
üzgünüm, neden daha önce en iyi cevabı seçmemiştim – LearnByReading
- 1. Düşünce sfenks bulanık arama?
- 2. PHP/MySQL küçük ölçekli bulanık arama
- 3. SSIS Arama dönüşümü anahtarı düzgün çalışmıyor
- 4. SSIS
- 5. SSIS
- 6. ssis
- 7. SSIS
- 8. Java Tarih ile ilgili tarihler, tarihte arama X gün önce
- 9. SSIS: DT_WSTR için DT_NTEXT Dönüştürme
- 10. Android için krom içinde bulanık SVG görüntüleri
- 11. Bir div öğesi için bulanık arka plan
- 12. Dize araması/bulanık eşleme yapmak için JS/jQuery'yi kullanma?
- 13. SSIS Kataloğu
- 14. WPF Takvim: Belirtilen tarihler kalın?
- 15. CSS3 Dönüştürme bulanık kenarlıklar
- 16. NSDateFormatter, belirli tarihler için null değerini döndürür
- 17. Farklı tarihler için Winston logger farklı dosya
- 18. Bulanık Qt Hızlı Metin
- 19. Qml ve bulanık görüntü
- 20. UIImageView neden bulanık?
- 21. JavaScript Tespit Geçerli Tarihler
- 22. Tarihler MySQL'e ekleme
- 23. Sonsuzluktaki tarihler neden NA'lara benziyor, ancak tarihler gibi davranıyor?
- 24. Tarihler arasında karşılaştırma C#
- 25. Tarihler tepki yerli krallığını
- 26. GWT'de tarihler nasıl ayrıştırılır?
- 27. R '' deki Tarihler R
- 28. SSIS İfade Oluşturucu için kaçış karakteri nedir?
- 29. Fuzzy içinde arama Solr
- 30. SSIS vs Pentaho
[Belge] (https://msdn.microsoft.com/en-CA/library/ms137786.aspx) dışı STR sütunlarda tam arama yapacak söylüyor. Bulanık dönüşümü yapmadan önce DOB'u bir dizeye dönüştürememenin herhangi bir nedeni var mı? – ESG
Teşekkür ederim, ben alıntıyı buldum, bir sebepten dolayı bunu ilk okumada bulamadım: "Sadece DT_WSTR ve DT_STR veri tiplerine sahip giriş sütunları bulanık eşlemede kullanılabilir. Tam eşleme, herhangi bir DTS veri türü dışında kullanılabilir. DT_TEXT, DT_NTEXT ve DT_IMAGE. " – LearnByReading
@ESG:" neden DOB'u dönüştüremiyorum ", bu amacı tamamen ortadan kaldıracak. Bunu, bahsettiğim iş parçasındaki bazı insanlar izledi. Bulanık eşleşme "bir" ile "iki" arasında eşleşmez, daha ziyade "iki" ile "iki" ya da "twi" ye eşleşebilir. Uzaklık formülüne ve yaygın yazım hatalarına ve yazım hatası kombinasyonlarına dayanarak çalışır. Rakamları dizgeye dönüştürmek, sadece bir şey yapmazsınız çünkü asla bir hata yapmazsınız. – LearnByReading