我读了一篇关于英语和语音的有趣文章 - 并希望看看我的新知识是否可以应用于TSQL以生成模糊结果集。在我的一个应用程序中,有一个包含单词的表,我从单词列表中提取。它实际上是一个单列表 -
Word |
------
A
An
Apple
...
their
there
SQL Server中是否有内置函数来选择声音这样的单词相同,即使它拼写不同? (全球化设置在en-ZA
上 - 我上次检查时)
SELECT Word FROM WordTable WHERE Word = <word that sounds similar>
答案 0 :(得分:2)
SOUNDEX将字母数字字符串转换为四字符代码,该代码基于发言时字符串的声音。
返回一个整数值,指示两个字符表达式的SOUNDEX值之间的差异。
SELECT word
, SoundEx(word) As word
, SoundEx(word_that_sounds_similar) As word_that_sounds_similar
, Difference(SoundEx(word), SoundEx(word_that_sounds_similar)) As how_similar
FROM wordtable
WHERE Difference(SoundEx(word), SoundEx(word_that_sounds_similar)) <= 1 /* quite close! */
Difference()
返回的值表示两个单词的相似程度。
值 0 表示强匹配,值 4 表示从轻微到无匹配。