如何在 DataStage 中聚合字符串数据?
How can I aggregate string data in DataStage?
我有以下数据进入 DataStage:
customernumber
hometelephone
mobiletelephone
1234
NULL
07123456
1234
0120202
NULL
我想要的是:
customernumber
hometelephone
mobiletelephone
1234
0120202
07123456
我认为很简单,只需使用聚合器 - 事实上这在某种程度上确实有效。但是,它将字符串转换为浮点数,然后再次转换回字符串,导致我的 phone 数字变为 7.1235e+06(或类似)。
是否有其他方法可以获取字符串的最大值?
我想要的东西在 SQL 中很容易:
SELECT customernumber, MAX(hometelephone), MAX(mobiletelephone) FROM <input> GROUP BY customernumber;
这个问题有两种选择:
- 聚合器阶段:使用属性“默认为十进制输出”以获得十进制输出。可以找到详细信息 here。转换数据类型没有错
- Transformer:聚合也可以在 Transformer 阶段完成,方法是使用 LastRowInGroup 检测组变化。
我有以下数据进入 DataStage:
customernumber | hometelephone | mobiletelephone |
---|---|---|
1234 | NULL | 07123456 |
1234 | 0120202 | NULL |
我想要的是:
customernumber | hometelephone | mobiletelephone |
---|---|---|
1234 | 0120202 | 07123456 |
我认为很简单,只需使用聚合器 - 事实上这在某种程度上确实有效。但是,它将字符串转换为浮点数,然后再次转换回字符串,导致我的 phone 数字变为 7.1235e+06(或类似)。
是否有其他方法可以获取字符串的最大值?
我想要的东西在 SQL 中很容易:
SELECT customernumber, MAX(hometelephone), MAX(mobiletelephone) FROM <input> GROUP BY customernumber;
这个问题有两种选择:
- 聚合器阶段:使用属性“默认为十进制输出”以获得十进制输出。可以找到详细信息 here。转换数据类型没有错
- Transformer:聚合也可以在 Transformer 阶段完成,方法是使用 LastRowInGroup 检测组变化。