1

我的来源是 Oracle 数据库。我的源列之一是具有如下所示的数据。我应该搜索 contact: 并获取所有出现的 14 个字符。

源列数据:

contact:"abcd"/Location:"India"/contact:"efgh"/Gender:"Male"/contact:"ijkl"/email:"ijkl@gmail.com"

等等....

所需输出:

contact:"abcd",contact:"efgh",contact:"ijkl"
4

1 回答 1

0

请找到以下查询以解决您的问题。我已经在 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;
于 2019-07-26T14:44:58.887 回答