簡體   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