我在表格中有一个数据
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
答案 0 :(得分:0)
您要解决的问题是"将分隔的列拆分为多行"。纯REGEXP_SUBSTR是不够的。 AskTom上描述了非常相似的任务。
很难从ODI本地做到这一点。 ODI最简单的方法是创建一个VIEW(参见上面的链接),然后实现映射。
UPD: Additioaly查看similar question
答案 1 :(得分:0)
使用此查询,您可以实现所需的目标:
SELECT SUBSTR(columnname, 1, INSTR(columnname,',') - 1) FROM tablename;
因此您可以在“映射”列中使用substr:
SUBSTR(Service, 1, INSTR(Service,',') - 1
)
还有另一种在ODI 11g中应用regexp_substr和窗口函数的方法,但是它需要自定义编辑的知识模块,因此这是一种变通方法,可以在这种情况下完成工作