我有一张这样的表
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企业指南)继续?
答案 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)