如何获取没有'.com'的域名?
How to get the domain name without '.com'?
SELECT substr(Emails, instr(Emails, '@')+1)
FROM EmployeeEmails;
Returns
gmail.com
我需要连接才能得到:
gmail
检查您的相关数据库查询:
查询(for MySQL)
select (SUBSTRING_INDEX(SUBSTR(Emails, INSTR(Emails, '@') + 1),'.',1)) from EmployeeEmails;
查询(针对Sql服务器):
select SUBSTRING(Emails,(CHARINDEX('@',Emails)+1),1) from EmployeeEmails;
查询(对于 Oracle)
select substr(Emails,instr(Emails,'@',1)+1) as domain
from EmployeeEmails;
您可以使用 LIKE
和通配符 see here
- 任何单个字符的下划线字符 (_)。
零个或多个字符的字符串的百分号字符 (%)。
SELECT email FROM emails
WHERE email NOT LIKE '%_@__%.__%'
这将忽略以下情况(有效电子邮件的简单版本):
- @
前至少有一个字符的电子邮件
- 在 @ 和 . 之间至少包含两个字符的电子邮件
- 电子邮件之间至少有两个字符。和结束。
试试这个:-
declare @email sysname = 'testCode@gmail.com'
SELECT substring(@email, charindex('@',@email,0)+1 , (charindex('.',@email,0)-1 - charindex('@',@email,0)))
可以使用REGEXP_REPLACE
提取域名:
select regexp_replace(emails, '^[^@]+@([^.]+)\..+$', '') from employeeemails;
这适用于 abcd@efgh.ijkl
.
模式的任何电子邮件
模式:
^
刺痛开始
[^@]+
除@ 以外的1到n个字符
@
@ 符号
(
记住下面的字符串
[^.]+
除点号外的 1 到 n 个字符 .
)
要记住的字符串结尾
\.
一个点.
.+
1 到 n 个字符
$
字符串结尾
</code>记住的字符串</li>
</ul>
<p>这是没有 <code>REGEXP_REPLACE
的老式方法:
select substr(emails,
instr(emails, '@') + 1,
instr(emails, '.', instr(emails, '@') + 1) - instr(emails, '@') - 1
)
from employeeemails;
SELECT substr(Emails, instr(Emails, '@')+1)
FROM EmployeeEmails;
Returns
gmail.com
我需要连接才能得到:
gmail
检查您的相关数据库查询:
查询(for MySQL)
select (SUBSTRING_INDEX(SUBSTR(Emails, INSTR(Emails, '@') + 1),'.',1)) from EmployeeEmails;
查询(针对Sql服务器):
select SUBSTRING(Emails,(CHARINDEX('@',Emails)+1),1) from EmployeeEmails;
查询(对于 Oracle)
select substr(Emails,instr(Emails,'@',1)+1) as domain
from EmployeeEmails;
您可以使用 LIKE
和通配符 see here
- 任何单个字符的下划线字符 (_)。
零个或多个字符的字符串的百分号字符 (%)。
SELECT email FROM emails WHERE email NOT LIKE '%_@__%.__%'
这将忽略以下情况(有效电子邮件的简单版本):
- @ 前至少有一个字符的电子邮件
- 在 @ 和 . 之间至少包含两个字符的电子邮件
- 电子邮件之间至少有两个字符。和结束。
试试这个:-
declare @email sysname = 'testCode@gmail.com'
SELECT substring(@email, charindex('@',@email,0)+1 , (charindex('.',@email,0)-1 - charindex('@',@email,0)))
可以使用REGEXP_REPLACE
提取域名:
select regexp_replace(emails, '^[^@]+@([^.]+)\..+$', '') from employeeemails;
这适用于 abcd@efgh.ijkl
.
模式:
^
刺痛开始[^@]+
除@ 以外的1到n个字符
@
@ 符号
(
记住下面的字符串[^.]+
除点号外的 1 到 n 个字符 .)
要记住的字符串结尾\.
一个点..+
1 到 n 个字符$
字符串结尾</code>记住的字符串</li> </ul> <p>这是没有 <code>REGEXP_REPLACE
的老式方法:select substr(emails, instr(emails, '@') + 1, instr(emails, '.', instr(emails, '@') + 1) - instr(emails, '@') - 1 ) from employeeemails;