匹配sql server中的类似文本

时间:2013-11-28 10:21:16

标签: sql sql-server pattern-matching

我有不同的用户名,由不同的最终用户手动输入。输入用户名时没有验证机制,因此可能存在拼写错误。例如用户可以 输入Tina,Teena获取相同的用户名。当我输入Tina时我需要返回Tina,反之亦然。

精心

SELECT * FROM tbl where where username='tina'

应该返回Tina,Teena等等

3 个答案:

答案 0 :(得分:2)

您可以调查T-SQL中的SOUNDEX函数。例如,它会将Teena与Tina相匹配(反之亦然)。

请参阅http://technet.microsoft.com/en-us/library/ms187384.aspx

正如函数名称所示,它匹配听起来相同的单词。所以,尽管Tina与Teena相匹配,但Tina与新浪并不匹配(因为他们的声音不一样)。

答案 1 :(得分:1)

SELECT name 
FROM   (SELECT 'tina' AS name 
        UNION ALL 
        SELECT 'teena' AS name 
        UNION ALL 
        SELECT 'tena' AS name)tmp 
WHERE  Soundex(name) LIKE '%' + Soundex('tina') + '%' 

答案 2 :(得分:1)

您可以参考soundex或diffrence

Select Soundex('Teena'),Soundex('Tina')

soundex返回T500两者,因此两者都是相似的单词

Select Difference('Teena','Tina')

返回4,差异更多是相似性