我有一个包含一些数据的表,其中一个是存储在名为" Domain"。
的列中的电子邮件。我需要更新" Domain"所以我剪切了电子邮件,只留下了域名(例如test@testmail.com
,查询后会像testmail.com
一样)。
因此Domain
列中存储了超过290000封电子邮件,并且还有一些NULL' s ...
正如我所说,我正在寻找域名,我不需要数据,包括@
另外,NULL
列中不需要重复的域列表或Domain
值。
所以我正在寻找的是一个查询,它将修剪电子邮件以将它们转换为域,同时查询将删除具有NULL
值和重复域的数据。
最终结果应该是列Domain
,只有唯一的域,里面没有NULL。
答案 0 :(得分:2)
简单如下:
SELECT DISTINCT RIGHT(Email, LEN(Email) - CHARINDEX('@', email)) AS email_domain
FROM table
WHERE Email IS NOT NULL;
答案 1 :(得分:2)
如果您想要独特的域名。 。
select distinct (case when domain like '%@%'
then stuff(domain, 1, charindex('@', domain) + 1, '')
else domain
end)
from t
where domain is not null;