SELECT substr(Emails, instr(Emails, '@')+1)
FROM EmployeeEmails;
返回
gmail.com
我需要连接才能获得:
gmail
答案 0 :(得分:2)
检查您的相关数据库查询:
查询(针对MySQL)
select (SUBSTRING_INDEX(SUBSTR(Emails, INSTR(Emails, '@') + 1),'.',1)) from EmployeeEmails;
查询(适用于Sql Server):
select SUBSTRING(Emails,(CHARINDEX('@',Emails)+1),1) from EmployeeEmails;
查询(适用于Oracle)
select substr(Emails,instr(Emails,'@',1)+1) as domain
from EmployeeEmails;
答案 1 :(得分:1)
您可以使用REGEXP_REPLACE
提取域名:
select regexp_replace(emails, '^[^@]+@([^.]+)\..+$', '\1') from employeeemails;
适用于模式abcd@efgh.ijkl
的任何电子邮件。
模式:
^
开始刺痛[^@]+
除了@ @
at符号@ (
请记住以下字符串[^.]+
除了点之外的1到n个字符。)
要记住的字符串的结尾\.
一个点。.+
1到n个字符$
字符串结尾\1
记住的字符串这是没有REGEXP_REPLACE
的老式方式:
select substr(emails,
instr(emails, '@') + 1,
instr(emails, '.', instr(emails, '@') + 1) - instr(emails, '@') - 1
)
from employeeemails;
答案 2 :(得分:0)
您可以将LIKE
与外卡[{3}}
百分号字符(%)表示零个或多个字符的字符串。
SELECT email FROM emails
WHERE email NOT LIKE '%_@__%.__%'
这将忽略以下情况(有效电子邮件的简单版本):
答案 3 :(得分:0)
试试这个: -
declare @email sysname = 'testCode@gmail.com'
SELECT substring(@email, charindex('@',@email,0)+1 , (charindex('.',@email,0)-1 - charindex('@',@email,0)))