比较数据阶段中的两个连续行并抛出不满足条件的行

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

我正在使用 Datastage 中的顺序文件读取文件,并且正在使用转换器对数据进行一些转换,我想将当前行与前一行进行比较,以检查列的值。如果条件满足,那么我将显示两行,否则我将拒绝这两行 输入文件的示例: ID。 信息 50 1行1 50 1-线2 40 2 行1 40. 2行2 50. 3线1 50. 3线2

连续的两行具有相同的ID,如果一行的列消息是1-line1,则第二行必须是1-line2,如果是这样,我们将加载这两行,如果不是,则两行将被拒绝并且该过程继续2-line1和2-line2做同样的过程

我如何在数据阶段实现这个场景,我已经使用了该变量,但它不起作用 有什么帮助吗?预先感谢。

我尝试使用变压器中的变量来逐行比较,但我无法同时抛出或加载两行。

etl transformer-model datastage
1个回答
0
投票

您的场景可以使用循环在变压器内解决。 查看变压器回路衰减

如果您想访问前一行的数据,您必须注意变量的自顶向下处理。如果最上面的阶段变量(或循环变量)引用后面的变量 - 后面的变量仍将具有前一行的数据。

由于您的逻辑涉及两行,因此您必须使用循环。 使用 SaveInputRecord(),您可以存储第一行,直到您检查了第二行的逻辑。

另请查看循环变量示例

请注意,在这种情况下,变压器需要排序的输入。

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