0

我在表格中有一个数据

ID  Service                 Amount
1   Mpesa,Credit,topup,App  2000
2   Credit,topup,App        1000
3   Topup,App               500

我需要输出为

ID  Service Amount
1   Mpesa   2000
1   Credit  2000
1   topup   2000
1   App     2000
2   Credit  1000
2   topup   1000
2   App     1000
3   Topup   500
3   App     500

这将在 ODI 11g 中实现,请帮助我继续此案例。RegEXp 函数将起到必要的作用,但需要了解 REGEXP 函数如何在 ODI 11g 中实现。

谢谢, Gowtham Raja S

4

2 回答 2

0

您要解决的问题是“将分隔列拆分为多行”。纯 REGEXP_SUBSTR 是不够的。AskTom上描述了非常相似的任务。

从 ODI 本地很难做到这一点。ODI 最简单的方法是创建一个 VIEW(参见上面的链接),然后实现一个映射。

UPD:另外看看类似的问题

于 2017-07-18T06:47:55.327 回答
0

使用此查询,您可以实现您想要的:

SELECT SUBSTR(columnname, 1, INSTR(columnname,',') - 1) FROM tablename;

因此您可以在 Mapping 列中使用 substr :

SUBSTR(Service, 1, INSTR(Service,',') - 1)

还有另一种在 ODI 11g 中应用 regexp_substr 和窗口函数的方法,但这需要自定义编辑知识模块,因此这是一种解决方法,可以在这种情况下完成工作

于 2019-08-14T09:28:53.857 回答