超越 SOUNDEX & 差异 - SQL 服务器
Beyond SOUNDEX & DIFFERENCE - SQL Server
我正在使用 SOUNDEX
和 DIFFERENCE
函数对 table 中存在的数据进行一些分析。
但是这个函数在以下类型的数据上失败了。 ITEM TYPE
和 ITEM SIZE
是完全不同的。
SELECT SOUNDEX('ITEM TYPE'), SOUNDEX('ITEM SIZE')
op:-
I350 I350
For DIFFERENCE op: - 4
我理解人类思维无法编码的每一种分析,但我还是想问一下,SQL Server
中是否还有其他功能可以帮助我进行下一级分析?
您可以使用算法,例如Damerau–Levenshtein distance。
The Damerau–Levenshtein distance between two words is the minimum
number of operations (consisting of insertions, deletions or
substitutions of a single character, or transposition of two adjacent
characters) required to change one word into the other.
有T-SQL个实现,比如this one by Steve Hatchett。
或者,您可以使用 an implementation in C#,编译一个 DLL 并将其加载到 SQL CLR。编译版本应该会更快。
有关将 CLR 程序集加载到 SQL @ CLR Assembly C# inside SQL Server.
的更多信息
我正在使用 SOUNDEX
和 DIFFERENCE
函数对 table 中存在的数据进行一些分析。
但是这个函数在以下类型的数据上失败了。 ITEM TYPE
和 ITEM SIZE
是完全不同的。
SELECT SOUNDEX('ITEM TYPE'), SOUNDEX('ITEM SIZE')
op:-
I350 I350
For DIFFERENCE op: - 4
我理解人类思维无法编码的每一种分析,但我还是想问一下,SQL Server
中是否还有其他功能可以帮助我进行下一级分析?
您可以使用算法,例如Damerau–Levenshtein distance。
The Damerau–Levenshtein distance between two words is the minimum number of operations (consisting of insertions, deletions or substitutions of a single character, or transposition of two adjacent characters) required to change one word into the other.
有T-SQL个实现,比如this one by Steve Hatchett。 或者,您可以使用 an implementation in C#,编译一个 DLL 并将其加载到 SQL CLR。编译版本应该会更快。
有关将 CLR 程序集加载到 SQL @ CLR Assembly C# inside SQL Server.
的更多信息