【问题标题】:Merge Join Transformation - Matching Multiple Columns合并连接转换 - 匹配多个列
【发布时间】:2013-01-31 17:36:55
【问题描述】:

我有两个 OLE DB 数据源。一个有列

身份证, 高级

另一个有

身份证, 优质的, 费用

它们都在同一个数据流中并且都已排序。

我将它们都用作合并连接转换的来源。我已经告诉它 ID 和 Premium 都是匹配的。

我希望此合并联接的输出仅是 ID 和 Premium 都匹配的行。相反,我似乎得到的是与 ID 或 Premium 匹配的行。

它被设置为一个内部连接,因为我不想让带有空值/不匹配的列在闲逛。

有谁知道如何实现所需的输出?我是否使用了正确的转换工具来实现这一目标?

【问题讨论】:

  • 您应该使用查找转换并查找成本并将匹配的输出仅映射到目标表。希望这会有所帮助!
  • 正是@Gowdhaman008 所说的。除非您有理由使用Merge Join Transformation,否则您将通过使用Lookup Transformation 从您的包中获得更好的性能。如果两个 OLE DB 源都在同一个数据库和/或实例中,只需编写一个内部联接并让数据库处理它。它会比 SSIS 高效得多,因为它可以利用现有索引,而 SSIS 必须在内存中构建它。

标签: ssis


【解决方案1】:

您正在使用正确的转换。但是,默认情况下,合并连接转换将 NULL 值视为相等。您可以通过将转换的 TreatNullsAsEqual 属性设置为 false 来关闭它。这样,您应该得到与常规 SQL 查询相同的结果。

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2020-09-28
    • 2019-09-17
    • 2018-05-22
    相关资源
    最近更新 更多