Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 创建列以筛选电子邮件域_Sql_Email - Fatal编程技术网

Sql 创建列以筛选电子邮件域

Sql 创建列以筛选电子邮件域,sql,email,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

我有一张这样的桌子

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
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)));

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

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

Table A
-------

Cust_Name   |   Email Cust_Name   |   Email Domain
_____________________________________________________
Martin      |   martin@gmail.com  |      Gmail 
Hussey      |   hussey@yahoo.com  |      Yahoo
William     |   will@sfr.fr       |      SFR
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)));
试试这个

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

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

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) ;

您的问题是如何将列添加到表中?或者如何根据电子邮件地址确定电子邮件提供商?不确定你想要什么你能添加一些非标准的例子吗?像
MyName@this.is.an.example.co.uk
MyName@This.is-an-even_odder.example.co.uk
。这将包括顶级域扩展(
.com
.fr
等)。看起来OP希望他们被切断。这将获得完整的域名,例如gmail.com,而不仅仅是gmail@BibinMatthew使用较长的电子邮件地址(例如Hotmail.commit)进行测试,最好能简短描述代码的实际功能。