假设我有以下源表(称为S):
name gender code
Bob 0
Nancy 1
Ruth 1
David 0
假设我还有一个查找表(称为S_gender_values):
Gender_Code Gender_value
0 Male
1 Female
我的目标是创建一个目标表(让我们称之为T),如下所示:
name Gender_Code
Bob M
Nancy F
Ruth F
David M
我还假设我有一个表T的查找表,称为T_GenderValues,我可以使用它来创建表T(并验证其结果)
Gender_Code Gender_value
M Male
F Female
我想到了2(或3)个替代方案:
创建一个映射表(让我们称之为S_T_Gender_Code_Mapping),如下所示:
S_Gender_Code T_Gender_code
0 M
1 F
然后使用tMap进行简单的连接/查找。
使用tMap并添加将实现映射的表达式,如:
(S.Gender_Code==0)?"F":"M"
与Alternative 2类似,但使用用户Java例程。
还有其他选择吗?我希望我可以利用tMap的简易性在S_GenderValues和T_GenderValues之间进行映射,并从像tMap中的UI工具的可用性中受益
任何提示?
答案 0 :(得分:4)
对我来说,似乎选项#1不必要地复杂并且可能会减慢进程。当然,如果你有几十或几千个查找,那就是你想要的,但不是两个。
选项#3也太多了,因为你想要将值合并到流或迭代流中(像tJavaRow这样的组件可以进行更复杂的转换)。
tMap组件可以在流程中执行简单的单行Java,因此选项2听起来像是你最好的选择。
答案 1 :(得分:0)
我已经解决了与你类似的情况,我的主要问题是我有一个大的查找表,在同一个地方有各种类型的查找。
如果你的问题增长到更多的选项而不是只有两个,第三种方法很好,所以你可能想看看这个解决方案,它将查找表的内容映射到全局变量列表,然后查找它们。