如何 trim 列中的电子邮件并同时删除重复项(SQL 2017,UPDATE 列)

How to trim emails in a column and at the same time remove duplicates (MSQL2017, UPDATE column)

我有一个 table 和一些数据,其中之一是存储在名为 "Domain" 的列中的电子邮件。

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

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

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

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

简单如:

SELECT DISTINCT RIGHT(Email, LEN(Email) - CHARINDEX('@', email)) AS email_domain
FROM table
WHERE Email IS NOT NULL;

如果您想要独特的域。 . .

select distinct (case when domain like '%@%'
                      then stuff(domain, 1, charindex('@', domain) + 1, '')
                      else domain
                 end)
from t
where domain is not null;