什么会导致模糊查找从引用表中返回一组 Null 值?

问题描述 投票:0回答:2

我正在对表的视图进行模糊查找,该表可以很好地返回相似性,但偶尔会出现异常,但我似乎无法弄清楚是什么导致了问题。 有时,比较会从查找视图中得出空值,即使这些值同时存在于视图和原始表中,并且我为“精确”匹配选择的列在查找视图和原始表中都具有相同的值。源 SQL。

对于为什么它提取空值有什么想法吗?

替代文本http://img689.imageshack.us/img689/4846/fuzzylkp.jpg

sql ssis lookup fuzzy-comparison
2个回答
2
投票

我发现通过更改列的顺序,并将精确匹配项放在列表顶部,可以正确返回空结果。


1
投票

在高级设置中更改 MinSimilarity 阈值 - 请参阅这篇文章,其中标题运行时会发生什么

在确定最佳匹配时,最重要的参数是 MinSimilarity 阈值。您可以使用模糊查找 UI 设置此自定义属性。仅当参考元组的相似度大于或等于 MinSimilarity 阈值时,才会返回参考元组。通过设置高相似性要求,模糊查找将考虑更少的候选者,因此可能不会返回任何匹配项。如果您将 MinSimilarity 设置得较低,模糊查找将考虑更多候选者,并且可能更有可能找到匹配项,但搜索可能需要更长时间。

请注意,您可以为每个单独的列设置 MinSimilarity 以及记录级别和列级别。返回的任何匹配结果都必须满足在所有级别和所有列中设置的阈值。例如,您可以将记录级别 MinSimilarity 设置为 0.5,但要求 ZipCode 的 MinSimilarity 为 0.9,Name 的 MinSimilarity 为 0.4。模糊查找只会返回满足所有这些条件的结果。

简而言之,这意味着如果您将其设置得太高,您可能根本得不到任何匹配。我怀疑这就是导致 NULL 值的原因,因为即使将其设置为 1.0,也不可能仅在这种情况下所有值都为 NULL,我也对此表示怀疑,因为这不会是模糊的,而是精确匹配。

© www.soinside.com 2019 - 2024. All rights reserved.