我的来源是 Oracle 数据库。我的源列之一是具有如下所示的数据。我应该搜索 contact: 并获取所有出现的 14 个字符。
源列数据:
contact:"abcd"/Location:"India"/contact:"efgh"/Gender:"Male"/contact:"ijkl"/email:"ijkl@gmail.com"
等等....
所需输出:
contact:"abcd",contact:"efgh",contact:"ijkl"
我的来源是 Oracle 数据库。我的源列之一是具有如下所示的数据。我应该搜索 contact: 并获取所有出现的 14 个字符。
源列数据:
contact:"abcd"/Location:"India"/contact:"efgh"/Gender:"Male"/contact:"ijkl"/email:"ijkl@gmail.com"
等等....
所需输出:
contact:"abcd",contact:"efgh",contact:"ijkl"
请找到以下查询以解决您的问题。我已经在 Tera data 中编写了这个查询,如果您使用其他数据库,请相应地更改功能。
我已按照该方法从数据集中删除与联系人无关的数据。
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;