我的来源是Oracle数据库。我的源列之一包含如下所示的数据。 我应该搜索联系人:并获取所有出现的14个字符。
源列数据:
contact:"abcd"/Location:"India"/contact:"efgh"/Gender:"Male"/contact:"ijkl"/email:"ijkl@gmail.com"
以此类推。...
必填输出:
contact:"abcd",contact:"efgh",contact:"ijkl"
答案 0 :(得分:0)
请为您的问题找到以下查询。 我已在Tera数据中写过此查询,如果您使用的是其他数据库,请相应地更改功能。
我遵循了从数据集中删除与联系人无关的数据的方法。
with tab as(select 'contact:"abcd"/Location:"India"/contact:"efgh"/Gender:"Male"/contact:"ijkl"/email:"ijkl@gmail.com"' as val)
select oreplace(oreplace(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3),','),(substr(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3) ,','),
index(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3) ,','),'/Gender:'),
index(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3) ,','),'/Gender:')-15)),','),
substr(val,CHARACTER_LENGTH(val)-22),'') as output from tab;