繁体   English   中英

如何在Oracle SQL中用空字符串替换电子邮件中@之前的所有点?

[英]How to replace all the dots before @ in an email with empty string in Oracle SQL?

我想用oracle查询中的empty string替换电子邮件中@之前的所有dots

喜欢:

anurag.mart@hotmail.com >> anuragmart@hotmail.com

最简单的方法是使用REGEXP_REPLACE识别模式并将其替换为所需的模式。

regexp_replace('anurag.mart@hotmail.com', '(\w+)\.(\w+)(@+)', '\1\2\3')

例如,

SQL> SELECT 'anurag.mart@hotmail.com' email_id,
  2  regexp_replace('anurag.mart@hotmail.com', '(\w+)\.(\w+)(@+)', '\1\2\3') new_email_id
  3  FROM dual;

EMAIL_ID                NEW_EMAIL_ID
----------------------- ----------------------
anurag.mart@hotmail.com anuragmart@hotmail.com
  • 指令-识别位置( @
  • Substr-提取start( 1 )和end( @ )位置之间的数据
  • 替换-替换. ''
  • || -连接两个字符串

尝试这个

SELECT Replace(Substr('anurag.mart@hotmail.com', 1, 
                      Instr('anurag.mart@hotmail.com', '@', 1)), '.', '') 
       || Substr('anurag.mart@hotmail.com', Instr('anurag.mart@hotmail.com','@')+1) 
FROM   dual 

结果:

anuragmart@hotmail.com

SqlFiddle演示

我在寻找 SQL 服务器的解决方案时来到这个页面,我为我的项目转换了上面的 SQL 服务器,如果其他人需要它,这里是 SQL。

SELECT 
    CONCAT(
        REPLACE(
            SUBSTRING(EmailAddress, 1, CHARINDEX('@', EmailAddress)-1),
            '.',
            ''
        ), 
        SUBSTRING(EmailAddress, CHARINDEX('@', EmailAddress), LEN(EmailAddress)) 
    )
FROM [Applicant]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM