如果像这样输入
作为输入 - abcdxyz@gmail.com
& pqrstuv@yahoo.com
有人想要输出
作为输出 - abcdxyz
& pqrstuv
如何使用Oracle执行此操作?
答案 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?
更复杂的例子和关于绩效的讨论在这里: