如何修剪一列电子邮件,并在同一时间删除重复(MSQL2017,UPDATE列)
我有一个表的一些数据其中之一是存储在一个名为“域”列中的电子邮件。如何修剪一列电子邮件,并在同一时间删除重复(MSQL2017,UPDATE列)
我需要更新“域名”,所以我剪掉了电子邮件,只留下域名(例如:[email protected]
,查询后会像这样testmail.com
)。
所以Domain
列有内部存储超过290000电子邮件,也有一些空的...
正如我说我找域名,我不需要留下的数据和包括@
也不要”吨需要重复的域名列表或Domain
列NULL
值。
所以我在寻找的是一个查询,它将修剪电子邮件以将它们转换为域,同时查询将删除具有NULL
值和重复域的数据。
最终的结果应该是Domain
列只有唯一域,无内空值。
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;
如果你想唯一域:
我以为你想更新表的内容?这只是显示数据 – Hybris95
“我所寻找的是一个查询,将修剪的电子邮件,同时将其转换成域的查询将删除与NULL值和重复域的数据。”如果你想改变表格的内容,我建议你问另外一个问题与样本数据和预期的结果一起。 –
你是什么意思的“更新”,并在同一时间有不同的结果?您是否希望显示结果或更新表格内容? – Hybris95
我要更新表的内容。 – Vissow