このテーブルがあると想像してください:
declare @tmpResults table ( intItemId int, strTitle nvarchar(100), intWeight float )
insert into @tmpResults values (1, 'Item One', 7)
insert into @tmpResults values (2, 'Item One v1', 6)
insert into @tmpResults values (3, 'Item Two', 6)
insert into @tmpResults values (4, 'Item Two v1', 7)
そして、2 つの文字列を受け取る fn_Lev と呼ぶ関数は、それらを互いに比較し、それらの差の数を整数 (つまり、レーベンシュタイン距離) として返します。
そのテーブルにクエリを実行し、各 strTitle の fn_Lev 値をテーブル内の他のすべての strTitle と比較してチェックし、3 のレーベンシュタイン距離で互いに類似している行を削除する最も効率的な方法は何ですか?
したがって、削除後、 @tmpResults には含まれている必要があります
1 Item One 7
4 Item Two v1 7
私はこれを行う方法を考えることができますが、恐ろしく遅くないものは何もありません(つまり、反復的です)。もっと速い方法があると確信していますか?
乾杯、マット