循环示例:将单行转换为多行 ( DataStage® )

您可以使用 Transformer stage 将具有重复列的数据单行转换为多行输出。

包含多个重复列的输入数据

当输入数据包含多列重复数据的行时,可使用 Transformer stage 生成多个输出行:每重复一列生成一行。

例如,如果输入行包含以下数据。
Col1 Col2 Name1 Name2 Name3
abc def Jim Bob Tom
您可以使用 Transformer stage 将输入数据展平,并为每行输入数据生成多行输出。 该数据现包含以下列。
Col1 Col2 名称
abc def Jim
abc def Bob
abc def Tom
要在 Transformer stage 中实现此场景,请进行以下设置:
循环条件
请将以下表达式作为循环条件输入。
@ITERATION <= 3
由于每行输入数据包含三列名称,因此需要对每行输入数据进行三次处理,并生成三行独立的输出数据。
循环变量
定义一个循环变量,为输出行中的新列 Name 提供值。 LoopVar1 的值由以下表达式设定:
IF (@ITERATION = 1) THEN inlink.Name1
ELSE IF (@ITERATION = 2) THEN inlink.Name2
ELSE inlink.Name3
输出链接元数据及其衍生信息
定义输出链接列及其衍生关系:
  • Col1 - inlink.col1
  • Col2 - inlink.col2
  • 名称 - LoopVar1