【问题标题】:informatica-powercenter-better way to implement SQL “between” logicinformatica-powercenter-实现 SQL“之间”逻辑的更好方法
【发布时间】:2017-02-22 10:02:17
【问题描述】:

我必须在 Informatica PowerCenter 中实现包含多个子查询的 SQL 语句。

其中一个我被卡住了,因为我会按照另一个答案中的建议使用,2 Source Qualifier 然后是 Joiner Component,但我需要如下条件:

TableB.columnID BETWEEN TableA.columnID AND TableB.column_ID

不幸的是,我还没有找到一种方法来实现这个条件,正如你在完整的 SQL 中看到的那样,我在 where 语句中就有这种情况。

据我所知,据我所知,在 PowerCenter 中,SQL 转换组件无法从 2 个源限定符中获得输入。

到目前为止,我发现的解决方案是将 between 条件放在源限定符中的 SQL 覆盖中,如图所示:

到目前为止,SQL Override 的所有SQL 声明和我的解决方案:

【问题讨论】:

    标签: etl informatica informatica-powercenter data-integration


    【解决方案1】:

    连接器中的匹配条件只能是'='

    如果连接不是“完整外部”,您可以使用查找转换配置为在匹配时返回所有行(不是任何、第一个或最后一个)

    查找中的匹配条件可以是“>=”、“”以及“=”。

    这里有一个指南:https://dwbi.org/etl/informatica/139-active-lookup-transformation

    【讨论】:

      【解决方案2】:

      如果您选择使用 2 个源限定符和一个连接器转换,您可以在之后的过滤器转换中应用 between 条件。您将在过滤器转换中拥有如下表达式。

      TableB_ID >= TableA_VON_ID AND TableB_ID <= TableB_BIS_ID
      

      【讨论】:

      • 这是一个只能用于非常少量数据的解决方案,因为在连接器和过滤器之间的 DTM 缓冲内存中将存在一个图表乘积。
      猜你喜欢
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多