0

我有一个包含一些数据的表,其中一个是存储在名为“域”的列中的电子邮件。

我需要更新“域”,所以我删掉了电子邮件,只留下域(例如:test@testmail.com查询后会像这样testmail.com)。

因此,该Domain列中存储了超过 290000 封电子邮件,并且还有一些 NULL ......
正如我所说,我正在寻找域,我不需要留下的数据,包括@
也不需要重复的域列表或列中NULL的值Domain

因此,我正在寻找一个查询,该查询将修剪电子邮件以将它们转换为域,同时该查询将删除具有NULL值和重复域的数据。

最终结果应该是Domain只有唯一域且内部没有 NULL 的列。

4

2 回答 2

2

很简单:

SELECT DISTINCT RIGHT(Email, LEN(Email) - CHARINDEX('@', email)) AS email_domain
FROM table
WHERE Email IS NOT NULL;
于 2017-07-28T11:12:43.417 回答
2

如果您想要唯一的域。. .

select distinct (case when domain like '%@%'
                      then stuff(domain, 1, charindex('@', domain) + 1, '')
                      else domain
                 end)
from t
where domain is not null;
于 2017-07-28T11:13:03.223 回答