如何从Oracle中的电子邮件地址中删除域名

时间:2017-05-31 11:42:26

标签: sql oracle

如果像这样输入

作为输入 - abcdxyz@gmail.com& pqrstuv@yahoo.com

有人想要输出

作为输出 - abcdxyz& pqrstuv

如何使用Oracle执行此操作?

2 个答案:

答案 0 :(得分:2)

对于你的情况,这将完成工作:

select regexp_replace('abcdxyz@gmail.com & pqrstuv@yahoo.com','@[a-zA-z0-9.]*','') from dual;

基于假设,域名仅包含数字和a-z字符。

答案 1 :(得分:0)

如果你知道所有可能的电子邮件地址(不太可能也不健壮),你可以使用TRIM功能:

http://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html

更有可能的是,你会自己编写一个“滚动”字符,直到它达到分隔符为止。这里有一个简短的例子(在接受的答案中较长的例子的分裂函数中):

Is there a function to split a string in PL/SQL?

更复杂的例子和关于绩效的讨论在这里:

https://web.archive.org/web/20170914140540/https://stackoverflow.com/documentation/oracle/1968/splitting-delimited-strings#t=201709141405407224393

相关问题