talend - 根据某些逻辑将一行拆分为多行

时间:2017-07-12 14:40:31

标签: oracle talend

目前这是我的流程:

tOracleInput -> tMap -> tFileOutput

tOracleInput中select语句的输出是这样的:

ID    |  Name   |  Amount  |  PercentageOfMixed  | IsMixedFlag
1      C0000001    100.00       0.55                   Y

现在的逻辑是: - 如果isMixedFlag是' Y',则输出的数量应为2,每个都具有金额的百分比 - 每行的Name字段的值附加前缀A或B.

输出:

ID    |  Name   |  Amount  | IsMixedFlag
1      C0000001A    55.00        Y
2      C0000001B    45.00        Y

这可行吗?

提前感谢所有想法。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询 -

SELECT ID, Name, Amount * PercentageOfMixed Amount, IsMixedFlag
FROM your_table
WHERE IsMixedFlag = Y
UNION ALL
SELECT ID, Name, Amount * (1 - PercentageOfMixed) Amount, IsMixedFlag
FROM your_table
WHERE IsMixedFlag = Y
ORDER BY ID

这可能不是您尝试实现的确切结果,但这可以为您提供实现最终结果的想法。