是否可以在没有SSIS的情况下执行T-SQL模糊查找?

时间:2008-10-29 17:15:13

标签: sql-server tsql ssis fuzzy-search

SSIS 2005/2008进行模糊查找和分组。是否有一个功能在T-SQL中执行相同的操作?

4 个答案:

答案 0 :(得分:7)

SQL Server有一个SOUNDEX()函数:

SELECT * 
FROM Customers
WHERE SOUNDEX(Lastname) = SOUNDEX('Stonehouse')
AND SOUNDEX(Firstname) = SOUNDEX('Scott')

答案 1 :(得分:7)

模糊查找使用q-gram方法,将字符串分解为微小的子字符串并对其进行索引。然后,您可以通过将输入分成相同大小的字符串来搜索输入。您可以检查其索引的格式并编写CLR函数以使用相同的索引样式,但您可能正在讨论相当大的工作量。

他们是如何做到这一点非常有趣,非常简单,但提供非常强大的匹配,并且非常易于配置。

从我回忆起上次查看时的索引,每个q-gram或子字符串都存储在表(索引)中的一行中。该行包含一个nvarchar列(以及其他值),用作二进制数据并包含对匹配行的引用。

此问题还有Microsoft Connect的公开反馈建议。

答案 2 :(得分:3)

全文搜索是一个很棒的模糊工具。 Brief primer here

答案 3 :(得分:1)

2009年3月5日,我将在www.sqlservercentral.com上发布一篇文章,其中包含Jaro-Winkler TSQL样本