如何 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;
我有一个 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;