0

为了简单起见,假设我有一个Client带字段的表:

  • 客户编号
  • 密码
  • 地区

Region我有一个带有字段的查找表:

  • ID
  • 邮政编码
  • 地区

Client表有一行:

123, 3075, THOMASTOWN

该区域有 2 行:

1,3074,THOMASTOWN
2,3075,LALOR

我正在尝试使用 SSIS 模糊查找来清理一些数据。

我使用客户端作为源,查找作为参考。当每次查找输出的最大匹配数为 1 时,结果为123,3075,THOMASTOWN, 1,3074,THOMASTOWN. 在这种情况下,SSIS 更喜欢 region 的值而不是 pcode 的值。但是当我将此选项增加到更高(2、4 或 100)时,所有结果行都与前一个相同。

我希望当我增加数字时,查找表的另一行显示为匹配项之一,因为该行与客户端行具有相同的区域代码。

令我惊讶的是,当我第一次将选项从 2 增加到 4 时,我在模糊查找输出的 4 行中的 2 行中看到了预期结果(另一个查找记录作为匹配项),但从那以后它再也没有发生过,并且根据 Max number of matches 选项的不同值,我总是看到完全相同的记录。

谁能向我解释这里发生了什么以及我做错了什么?

4

1 回答 1

0

来自 BOL:http: //msdn.microsoft.com/en-us/library/ms137786.aspx

The transformation returns zero or more matches up to the number of matches specified. 
Specifying a maximum number of matches does not guarantee that the transformation 
returns the maximum number of matches; it only guarantees that the transformation 
returns at most that number of matches. 

如果您在匹配中使用这两列,则该区域似乎有很大的不同,以至于 pcode 本身的匹配仍然不够强,无法返回任何结果。

有几个选项:

  1. 尝试调整相似度阈值,看看是否可以获得返回的行
  2. 使用两次模糊查找(每列一个),这样如果第一次不匹配或相似度 % 不够强,您可以执行第二次查找以进行匹配。
于 2014-09-15T19:43:44.940 回答