SSIS 2005/2008 は、ファジー ルックアップとグループ化を行います。T-SQL で同じことを行う機能はありますか?
4 に答える
ファジールックアップは、文字列を小さなサブ文字列に分割し、それらにインデックスを付けることにより、q-gramアプローチを使用します。次に、入力を同じサイズの文字列に分割して検索できます。それらのインデックスの形式を調べて、同じスタイルのインデックスを使用するようにCLR関数を記述できますが、かなりの量の作業について話している可能性があります。
彼らがそれをどのように行ったかは実際には非常に興味深いものであり、非常にシンプルでありながら非常に堅牢なマッチングを提供し、非常に構成可能です。
それから、最後にインデックスを見たときのインデックスを思い出します。各q-gramまたはサブストリングは、テーブル(インデックス)の行に格納されます。その行には、バイナリデータとして使用されるnvarchar列(他の値の中でも)が含まれ、一致する行への参照が含まれます。
この機能については、 MicrosoftConnectに関するオープンなフィードバックの提案もあります。
SQL Server には SOUNDEX() 関数があります。
SELECT *
FROM Customers
WHERE SOUNDEX(Lastname) = SOUNDEX('Stonehouse')
AND SOUNDEX(Firstname) = SOUNDEX('Scott')
全文検索は優れたあいまいツールです。簡単な入門書はこちら
2009 年 3 月 5 日に、Jaro-Winkler TSQL のサンプルを掲載した記事を www.sqlservercentral.com に掲載する予定です。