我有一个数据集,其中有数千个网址存储在名为Website
的表中VARCHAR
(类型WebsiteData
)的列中。有许多URL(存储在不同的行中)是相同的,除了一个以www
开头的URL,例如, www.google.com
而另一个则没有,例如google.com
。如何设计标识这些伪重复项的SQL查询并删除不以www
开头的版本?
答案 0 :(得分:1)
我派出了2个表,其中一个网址包含www.
而另一个没有。通过添加www加入他们。到没有的网址。
-- SELECT first to review the records.
select *
from
(select * from website where url not like 'www.%') wA
join
(select * from website where url like 'www.%') wB
on 'www.' + wa.url = wb.url
delete wA
from
(select * from website where url not like 'www.%') wA
join
(select * from website where url like 'www.%') wB
on 'www.' + wa.url = wb.url
答案 1 :(得分:0)
首先使用SUBSTRING获取网站部分。并与任何重复的条目匹配并将其删除。
DELETE tableW
FROM tableW W
JOIN
(
select W1.website
FROM tableW W1
inner join tableW W2
on W1.website = SUBSTRING(W2.website,CHARINDEX('.',W2.website, 0)+1, LEN(w2.website))
) T
on T.website = W.website