创建列以过滤电子邮件域

时间:2018-01-08 14:44:40

标签: sql email

我有一张这样的表

Table A
-------

Cust_Name   |   Email
___________________________________
Martin      |   martin@gmail.com
Hussey      |   hussey@yahoo.com
William     |   will@sfr.fr

我想添加一个列,目的是按照这个

按域过滤
Table A
-------

Cust_Name   |   Email Cust_Name   |   Email Domain
_____________________________________________________
Martin      |   martin@gmail.com  |      Gmail 
Hussey      |   hussey@yahoo.com  |      Yahoo
William     |   will@sfr.fr       |      SFR

如何通过SQL(Sas企业指南)继续?

3 个答案:

答案 0 :(得分:1)

您可以使用以下方法创建计算字段或视图:

DECLARE @Email VARCHAR(50) = 'Josh.Rubens@gmail.com'
SELECT LEFT(SUBSTRING(@Email ,CHARINDEX('@',@Email ,1) + 1,LEN(@Email)), CHARINDEX('.', SUBSTRING(@Email ,CHARINDEX('@',@Email ,1),LEN(@Email)),1)  - 2) ;

答案 1 :(得分:0)

创建一个新列并像这样插入

SELECT SUBSTRING(SUBSTRING(SUBSTRING('Email',CHARINDEX('@','Email',1)+1,CHARINDEX('.','Email',1)-1), 1,CHARINDEX('.',SUBSTRING('Email',CHARINDEX('@','Email',1)+1,CHARINDEX('.','Email',1)-1),1)-1),1,LEN(SUBSTRING(SUBSTRING('Email',CHARINDEX('@','Email',1)+1,CHARINDEX('.','Email',1)-1),1,CHARINDEX('.',SUBSTRING('Email',CHARINDEX('@','Email',1)+1,CHARINDEX('.','Email',1)-1),1)-1)));

答案 2 :(得分:0)

试试这个

SELECT SUBSTRING(Email, CHARINDEX('@', Email)+1, CHARINDEX('.',Email) - CHARINDEX('@', Email) + Len('.')-2)